Использование анимации (постепенный рост числа)
Здравствуйте. Делаю слайды, и в них передвигаю широоокий блок с помощью transform:translateX() по области блока, в котором он находится (т.е. остальные части скрыты с помощью свойства overflow: hidden).
Использую такую команду в яваскрипте:
$(выборка).css("transform", "translateX("+poz+"px)");
// poz - значение, числовой вид - конечное положение
// известно и первоначальное положение (например, pozFirst)
То есть, значение translateX = 0. При нажатии на "след.", или по истечении тайм-аута включается функция, в котором значение translateX вносится в переменную pozFirst. И этой переменной добавляется ширина изображения (чтобы полностью перейти к другой), т.е.: poz = pozFirst + imageWidth; И пишется команда изменения стиля, которую написал выше. Так вот, хотел бы сделать анимацию перехода. Пробовал так - не работает:
$(выборка).animate({transform: "translateX("+poz+"px)"},"slow");
С помощью анимации CSS (@keyframes) даже пробовать не стал - вообще не понятно, в .css() что куда вписывать. Да и примеров в интернете не нашел. Помогите пожалуйста, как сделать подобную анимацию? |
Цитата:
|
Булат Азат улы,
может
<style type="text/css"> выборка{
transition: 1s;
}
</style>
|
animate translateX
Булат Азат улы,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.hot{
border: 1px dashed Gray; padding: 5px; height: 100px; width: 100px;
background-color: rgba(139, 69, 19, 1);
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
$.fn.Timer = function Timer(obj) {
var def = {
from: 5E3,
duration: 5E3,
to: 0,
callback: null,
step: function(now, fx) {
$(fx.elem).css("transform", "translateX("+(now | 0)+"px)");
}
};
var opt = $.extend({}, def, obj);
return this.each(function(indx, el) {
$(el).queue(function() {
el.n = opt.from;
$(el).dequeue()
});
$(el).animate({
n: opt.to
}, {
easing: "swing",
duration: opt.duration,
step: opt.step,
complete: opt.callback
})
})
};
$(".hot").Timer({from: 0,
duration: 5000,
to: 500})
});
</script>
</head>
<body>
<style type="text/css">
</style>
<div class="hot"></div>
</body>
</html>
|
рони,
Спасибо огромное! Об этом даже не знал (думал, работает только на наведения мышью): transition: 1s; Всё очень красиво работает!!! |
| Часовой пояс GMT +3, время: 23:06. |