jQuery .animate () ничего не делает в IE8 - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть div текста (#text-write), каждый символ которого span нед.div absolute ly position ed внутри relative ly position ed контейнера div (#typetext).Вот предполагаемый эффект:

  1. Анимация внутреннего div (#text-write) до opacity 0 в течение 400 мс.
  2. Анимация каждого span внутри внутреннего div один последругие opacity 1 для 400 мс каждый.
  3. Пауза на 5 секунд.
  4. Вернитесь к 1.

Я просто не могу заставить это работать в IE8,Он работает в IE7 и ниже, IE9, других основных и малоизвестных (насколько я знаю) браузерах.Я дергал себя за волосы, пробуя все, что нашел в сети (добавьте макет к absolute ly position ed inner div, поиграйте с filter, попробуйте исчезнуть и т. Д.) За последние 5 иличасов.

Логика работает (я попытался вставить alert в рекурсивный вызов, и IE8 делает alert для каждой span ned буквы и в точное время, даже пауза), в консоли тоже нет ошибок.

Но с opacity ничего не происходит.Он даже не исчезает.Он просто остается там.

Вы можете помочь?

        jQuery(function() {
            // span each letter in text
            var textType = jQuery('#text-write').remove().text(), textTypeLength = textType.length,
                fadeSpeed = 400, fadePause = 5000,
                textSpanned = '';
            for (i=0;i<textTypeLength;i++) textSpanned += '<span>' + textType.charAt(i).replace(' ','&nbsp;') + '<\/span>';
            jQuery('#typetext').append('<div id="text-write">'+ textSpanned + '<\/div>');

            // fade phrase logic
            function fadeType(){
                var letters = jQuery('#text-write span').animate({opacity: 0}, fadeSpeed),
                    i=0;
                (function(){
                    jQuery(letters[i++]).animate({opacity: 1}, fadeSpeed, arguments.callee);
                })();
            }

            // make it happen
            fadeType();
            setInterval(function(){fadeType();},fadePause + fadeSpeed + (textTypeLength*fadeSpeed));

        });

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

я нашел ответ на http://api.jquery.com/fadeTo/#dsq-cite-119679059

<span> элементы, которые я хотел оживить, были, конечно, встроенными. display используя их как inline-block, наконец, сделал это для ie8. Большое спасибо, Джеко, который нашел решение в http://www.devcomments.com/IE-8-fadeTo-problem-with-inline-elements-to65024.htm

публикация здесь для всех, кому это может понадобиться и не тратить столько времени, сколько я имел.

0 голосов
/ 11 февраля 2016

Кроме того, я использовал animate для перемещения элементов с процентами.IE не поддерживает проценты.Я переключил анимацию с процентов на пиксели, и она работала просто отлично.

...