JQuery анимационная нижняя проблема

Это странно. У меня есть анимация, которые запускаются когда я .hover на DIV. В это отделение у меня есть другой в положении, абсолютном, который я хочу переместить вплоть до мыши, остаются на основном отделении и понижаются в Вашем положении, когда я выхожу из основного отделения простой эффект при наведении курсора. Я имею, записывают эту функцию, которые работают хорошо независимо странная ошибка.

         var inside = $('.inside')

         inside.hover(function() {
             $(this).children(".coll_base").stop().animate({
               bottom:'+=30px'
             },"slow")
          }, function() {
             $(this).children(".coll_base").stop().animate({
               bottom:'-=30px'
             },"slow");
          });

мне нужно + =30 и - =30, потому что я должен применить эту функцию к диапазону отделения с другой нижней частью. Проблема состоит в том, что, если я толплюсь на и из отделения DIV анимационное право, но когда понижаются, он уменьшает значение нижней части каждая анимация. Если я иду вверх и вниз от основного отделения, я вижу, что анимированное отделение спускается даже вне основного отделения. Я думаю, что пропускаю что-то для разрешения этой ошибки. Спасибо за любую справку

5
задан andrea 6 June 2010 в 23:29
поделиться

2 ответа

Если дно изначально не равно 0 , то вы можете сохранить начальное нижнее значение и использовать его во второй функции. (Если начальное нижнее равно 0 , тогда просто используйте это.)

В приведенном ниже примере начальное нижнее положение сохраняется с использованием ] data () для внутри , затем он извлекается во втором обработчике для возврата в исходное положение.

Живой пример: http://jsfiddle.net/VAsZZ/

var inside = $('.inside');

inside.hover(
    function() {
        if(!inside.data('bottom')) {
            inside.data('bottom',$(this).children(".coll_base").css('bottom'));
        }
        $(this).children(".coll_base").stop().animate({ bottom:'+=30px' },"slow")
    }, 
    function() {
        $(this).children(".coll_base").stop().animate({bottom:$(this).data('bottom') },"slow");
    }
);​
5
ответ дан 14 December 2019 в 19:01
поделиться

Не думаю, что в данном случае можно использовать относительные значения (-=30px и +=30px), так как анимация может остановиться в любой произвольной точке, что приведет к сбрасыванию последующих анимаций. Лучше всего вызвать each() для сопоставленного набора, вычислить правильные смещения и передать значения непосредственно в функцию hover.

0
ответ дан 14 December 2019 в 19:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: