Поворот изображения не работает в IE или FF - PullRequest
0 голосов
/ 28 марта 2012

Я работал над этим в течение некоторого времени. Скрипт работает, и поток отслеживается во всех браузерах. Chrome и Safari хорошо показывают слайд-шоу. Я попытался уменьшить интервал до более 1 секунды, разделить функции, сократить количество изображений, изменил CSS на относительный / абсолютный и многочисленные версии кода. Я разместил оповещения во всех разделах, чтобы проверить поток.

Ссылка на тест: http://jawilliams.site11.com/ESG/

Раздел сценариев

 <div id="flashHeader">&nbsp;</div>
 <script>
    var currentItem = 0;
    var itemInterval = 33;
    var numberOfItems = 660;
    var imagePath = "JPEG_SEQUENCE/web_4/";
    var holder = $('#flashHeader');
    var flashImages = new Array("MASTER_00000.jpg", "MASTER_00001.jpg", "MASTER_00002.jpg", "MASTER_00003.jpg", "MASTER_00004.jpg", "MASTER_00005.jpg", "MASTER_00006.jpg", "MASTER_00007.jpg", "MASTER_00008.jpg", "MASTER_00009.jpg", "MASTER_00010.jpg", "MASTER_00011.jpg", "MASTER_00012.jpg", "MASTER_00013.jpg", "MASTER_00014.jpg", "MASTER_00015.jpg", "MASTER_00016.jpg", "MASTER_00017.jpg", "MASTER_00018.jpg", "MASTER_00019.jpg", "MASTER_00020.jpg", "MASTER_00021.jpg", "MASTER_00022.jpg", "MASTER_00023.jpg", "MASTER_00024.jpg", "MASTER_00025.jpg", "MASTER_00026.jpg", "MASTER_00027.jpg", "MASTER_00028.jpg", "MASTER_00029.jpg", "MASTER_00030.jpg", "MASTER_00031.jpg", "MASTER_00032.jpg", "MASTER_00033.jpg", "MASTER_00034.jpg", "MASTER_00035.jpg");
    function outputPlayerversion() {
        var playerVersion = swfobject.getFlashPlayerVersion();
        if(playerVersion.major>=19) return false;
        else return true;
    }
    var flashLoop = {
        loop: function() {
            holder.removeClass('loading');
            var srcImg = '';
            var oldImage = 0;
            var firstItem = true;
            var elem = $('#flashHeader > img');
            var infiniteLoop = setInterval(function() {
                if(currentItem === 0) oldImage = numberOfItems-1;
                else oldImage = currentItem-1;
                if(firstItem) firstItem = false;
                else $(elem[oldImage]).css({display: 'none !important', visibility: 'hidden !important'});
                $(elem[currentItem]).css({display: 'block !important', visibility: 'visible !important'});
                if(currentItem === numberOfItems-1) currentItem = 0;
                else currentItem++;
            }, itemInterval);
        },
        preloadImages: function() {
            $('#flashHeader').addClass('loading');
            var srcImg = '';
            var count = 0;
            $(flashImages).each(function() {
                srcImg = imagePath + this;
                var flashImg = $(document.createElement('img'));
                var idTag = 'flashLoopImages' + count;
                flashImg.attr('id', idTag);
                flashImg.attr('src', srcImg);
                flashImg.css({display: 'none'});
                holder.append(flashImg);
                count++;
            });
            this.loop();
        }
    };
    $(document).ready(function() {
        var noFlash = outputPlayerversion();
        if(noFlash) flashLoop.preloadImages();
        else swfobject.embedSWF("ELITE_MASTER.swf", "flashHeader", "960", "300", "9.0.0");
    });
</script>

CSS

 body {position:relative;}
 #flashHeader {background:url('JPEG_SEQUENCE/web_3/MASTER_00102.jpg') center center no-repeat;width:960px;height:300px;position:relative;}
 #flashHeader.loading {background:url('loading.gif') no-repeat center center;}
 #flashHeader IMG {position:absolute;top:0;left:0;width:960px;height:300px;z-index:8;}

1 Ответ

0 голосов
/ 28 марта 2012

Я нашел, где лежит проблема. Я обновил две строки со следующим:

 else $(elem[oldImage]).hide().css({display: 'none !important', visibility: 'hidden !important'});
 $(elem[currentItem]).show().css({display: 'block !important', visibility: 'visible !important'});
...