#jquery #jquery-animate
#jquery — запрос #jquery-анимировать #jquery
Вопрос:
Я хотел бы знать, есть ли какой-нибудь способ получить:
$('html,body').animate({scrollTop: " =1800px"},2000);
но с каким-то элементом с другими значениями для функции animate.
Комментарии:
1. Вместо анимации
<html>
и<body>
тегов, почему бы не использовать<div>
s в теле?2. Что именно вы подразумеваете под «другими значениями»? Вы хотите использовать метрики другого элемента для вычисления значений анимации?
3. Кроме того,
position: fixed
в «статическом» элементе может быть то, что вы ищете.4. Джаред: Использование divs — это, конечно, вариант, но я не знал, есть ли какой-то другой способ. minitech: другие значения, например, я имею в виду другую скорость до максимума.
5. В Opera (по крайней мере, в более старых версиях) есть ошибка, которая будет анимировать
html
иbody
тег отдельно. Пожалуйста, обратитесь к этому сообщению для исправления.
Ответ №1:
Возможность 1
Нет, поскольку каждый другой элемент находится внутри тела, он будет анимироваться вместе с ним.
Однако вы могли бы включить все, что вы не хотите анимировать, в один большой div с максимальным значением с и высотой, и изменить код, чтобы просто анимировать этот div.
Возможность 2
Я просто подумал о чем-то другом. Не уверен, что это сработает.
Используйте это как селектор для анимации: $('body *').not('dontAnimateThese')
.
Заменить dontAnimateThese
элементами, которые не должны быть анимированы.
Комментарии:
1. Спасибо Робину за объяснение. Я попробовал вашу вторую возможность, но я не смог заставить ее работать. Я попробовал $(‘body *’).not(‘#divid’).animate({scrollTop: » = 1800px»}, 2000); Это было правильно, что вы говорили?
2. Да, но, как я уже сказал, я не был уверен, сработает ли второй метод.
3. То, как я пытался, не сработало, но все равно спасибо. Первая часть ответа — это то, что я искал.