Возможно ли анимировать $ (‘html,body’), кроме одного элемента?

#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. То, как я пытался, не сработало, но все равно спасибо. Первая часть ответа — это то, что я искал.