#javascript #jquery #css
#javascript #jquery #css
Вопрос:
У меня есть этот код
.test2{
transition: 10s;
}
js
window.onscroll = function() {
$( ".test2" ).animate({
top: -s-100 }, 0, "linear");
}
или
window.onscroll = function() {
$('.test2').css('transition', 0);
$('.test2').css('transition', "");
}
Но ничего не произошло. Это должно быть, когда я прокручиваю страницу колесом вниз или щелкаю мышью на полосе прокрутки в этот момент transition: 0s; но в тот момент, когда я перестаю это делать. тогда переход сразу становится 10 секунд
Когда вы нажимаете на кнопку, анимация должна быть плавной.
Возможно ли сделать что-то подобное?
Codepen пример
Комментарии:
1. Afaik, переход должен знать, что нужно переходить. Все, что вы указали, это длительность, а не свойство переходить при ее изменении. Кроме того, jQuery
animate()
вообще не использует свойство перехода css.animate()
написан для того, чтобы браузеры, которые не обладают врожденной способностью анимации, по-прежнему имели эту функциональность.
Ответ №1:
просто немного кода, не тестировал его, но я надеюсь, что он близок к тому, что вы ищете, используя offset()
для получения верхней позиции при прокрутке страницы..
и установите xtop
переменную, а затем вызывайте doAnimation()
при каждом прокручивании страницы, но не забывайте вызывать stop()
метод для каждого объекта, чтобы кэш анимации не загружался и не замедлял работу вашей системы.
var xtop;
window.onScroll = function(){
xtop = $(window).offset().top; //get the top position.
doAnimation();
}
function doAnimation(){
$(".test2").stop().animate({top: xtop}, 10000, "linear");
}
всякий раз, когда вы останавливаете прокрутку, объект анимируется в xtop
позицию за 10 секунд (10000 миллисекунд), я надеюсь, это сработает.
Комментарии:
1. не помогло, я отредактировал код, но я не знаю, как удалить $ («.test2»).animate({transition: «0s»}, 1); } Поэтому мне пришлось сделать костыль, Вы не знаете, как это исправить? codepen.io/zeni-agentt/pen/aMBvKO