JQuery: анимационный () не работает как ожидалось в IE

 q) select from t where any val like/: ("hello"; "test")

Вывод:

sym time        price val
---------------------------
ibm 10:01:01    100   hello
ibm 10:01:08    105   test
5
задан Bill the Lizard 16 September 2011 в 18:53
поделиться

6 ответов

Как заявил Пол, при использовании метода. Браузер Animate () jQuery IE7 не распознает внутренне свойство «позиция». например

Правило CSS:

li p (bottom:-178px; color: white; background-color: # 4d4d4d; height: 100%; padding: 30px 10px 0 10px;)

Реализация анимации в jQuery:

$('li').hover(function(){

              $this = $(this);

              var bottom = '-45px'; //valor default para subir.

              if( $this.css('height') == '320px' ){bottom = '-115px';}

              $this.css('cursor', 'pointer').find('p').stop().find('.first').hide().end().animate({bottom: bottom}, {queue:false, duration:300});

      }, function(){

         var $this = $(this);

         var bottom = '-178px'; //valor default para descer

            if( $this.css('height') == '320px' ){bottom = '-432px';}

         $this.find('p').stop().animate({***position: 'absolute'***, bottom:bottom}, {queue:false, duration:300}).find('.first').show();

      });//fim do hover()

Что работать во всех браузерах:

Правило CSS:

li p (position: absolute; left: 0; bottom:-178px; color: white; background-color: # 4d4d4d; height: 100%; padding: 30px 10px 0 10px;)

Код JQuery:

   $('li').hover(function(){

                 $this = $(this);

         var bottom = '-45px'; //valor default para subir.

              if( $this.css('height') == '320px' ){bottom = '-115px';}

              $this.css('cursor', 'pointer').find('p').stop().find('.first').hide().end().animate({bottom: bottom}, {queue:false, duration:300});

      }, function(){

         var $this = $(this);

         var bottom = '-178px'; //valor default para descer

            if( $this.css('height') == '320px' ){bottom = '-432px';}

         $this.find('p').stop().animate({bottom:bottom}, {queue:false, duration:300}).find('.first').show();

      });//fim do hover()

В моем случае это было решено таким образом.

1
ответ дан 13 December 2019 в 22:18
поделиться

Я столкнулся с подобной проблемой с анимационной функцией и был удивлен, когда она показывала ошибку, прибывающую из базовой библиотеки jQuery. Однако jQuery прекрасен, его IE, который необходимо обслужить.

При анимации любого атрибута элемента в IE необходимо удостовериться, что в CSS существует начальная точка для атрибута, который Вы собираетесь изменить. Это также относится к Safari.

Как пример, перемещая отделение постоянно налево,

JQuery:

var re = /px/;
var currentLeft = $("#mydiv").css('left').replace(re,'') - 0;
$("#mydiv").css('left',(currentLeft-20)+'px');

CSS:

#mydiv { position: absolute;    top: 0;    left: 0; }

Если Вы НЕ вставите левую и главную стартовую позицию, то IE в конечном счете бросит ошибку.

Надеюсь, это поможет

8
ответ дан 13 December 2019 в 22:18
поделиться

У меня недавно была проблема, где анимационный () не работал как ожидалось, и это было до IE, представляющего мое дополнение CSS: свойства по-другому к FireFox.

Это, казалось, произошло с другими людьми, и я должен был бездельничать в своей CSS; использование полей и зафиксированных ширин и других таких ужасных взломов IE, вместо этого.

0
ответ дан 13 December 2019 в 22:18
поделиться

Вы могли использовать селектор jQuery: видимый вместо того, чтобы переключить isVisible класс.

Также Ваша анимация кажется функционально тем же как slideUp (1000).

0
ответ дан 13 December 2019 в 22:18
поделиться

Я не уверен, что проблема точно..., возможно, Вы не можете анимировать к"display: none"? Попробуйте это:

toHide.animate({ height : 0 }, 1000, function() { $(this).hide(); });

... мысль, похоже, что могли бы быть некоторые другие проблемы с контейнером не наличие overflow: hidden набор на нем.

Лучший способ мог бы состоять в том, чтобы не изобретать велосипед: плагин UI jQuery имеет встроенный аккордеон. http://docs.jquery.com/UI/Accordion я уверен благородный г-н Resig & Co, уже имел дело с любыми ошибками, с которыми Вы могли бы встречаться.

0
ответ дан 13 December 2019 в 22:18
поделиться

Измените продолжительность работы IE. Сделайте ее на 1/10 меньше, чем в FF, и она должна быть близка к одинаковому поведению в обоих браузерах:

FF

$("#map").animate({"top": (pageY - 101) + "px"},{"easing" : "linear", "duration" : 200});

IE

$("#map").animate({"top": (pageY - 101) + "px"},{"easing" : "linear", "duration" : 20});

Должно исправить это.

0
ответ дан 13 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

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