2009-05-21 1 views
0

Я действительно озадачен следующим.jQuery - Пользовательская галерея - работает в FF, Chrome, Safari и IE8, но не IE7 - указатели?

Когда галерея создана в FF/Chrome и т. Д., Щелчок затем перемещает изображение на одно, и состояние зависания остается для вас снова щелчком. В IE7 изображение перемещается на один, тогда состояние зависания выходит из строя и не появляется снова. Другие эффекты, которые у меня есть на моей странице, продолжают функционировать.

Мой jQuery может быть не лучшим, поэтому я приношу свои извинения за беспорядок. Другие, кроме проблемы, приветствуют любые общие указатели jQuery.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm11-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
    <meta name="author" content="" /> 
    <meta name="keywords" content="" /> 
    <meta name="description" content="" /> 
    <meta name="robots" content="all" /> 

    <title>GA - 2009 yee haw</title> 
    <script type="text/javascript"></script> 
    <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script> 
    <script type="text/javascript" src="/js/jquery.dimensions.min.js"></script> 
    <script type="text/javascript" src="/js/jquery.easing.1.3.js"></script> 
    <style type="text/css" media="all"> 
     @import "/css/screen.css"; 
    </style> 
</head> 


<body> 





      <script type="text/javascript"> 
       <!--// 
       function DrawGalleryOptions(div) { 

        $('gallery').css({width: '503px'}); 
        $(div).append('<div class="gallery-title"><p style="font-size:14px;">no title</p><div class="gallery-bg gallery-bg-small"></div></div>'); 
        $(div).append('<div class="gallery-nav"></div>'); 
        $('.gallery-nav').append('<div class="gallery-bg"></div><div class="gallery-controls"><p class="gall-title"><a class="gallleft" href="#galleryleft" title="">Previous Image</a><a class="gallright" href="#galleryright" title="">Next Image</a></p></div>'); 

        $('.gallery-title, .gallery-nav, .gallery-bg').css({ position: 'absolute', left: '0px', height: '30px', width: '503px' }); 
        $('.gallery-nav').css({ height: '60px', bottom: '-60px' }); 
        $('.gallery-bg').css({ backgroundColor: '#5974c5', opacity: 0.7, height: '60px', zIndex: 1000 }); 
        $('.gallery-title').css({ top: '-30px'}); 
        $('.gallery-controls').css({ position: 'absolute', zIndex: 1002 }); 
        $('.gallery-bg-small').css({height: '30px'}); 
        $('.gallery-title p').css({zIndex: 1002, color: '#ffffff', position: 'absolute', padding: '5px'}); 
        $('.gallery-controls p').css({ posistion: 'absolute', zIndex: 1005, left: '0px', top: '0px' }); 
        $('a.gallleft').css({ width: '82px', height: '45px', display: 'block', textIndent: '0', backgroundImage: 'url(/image/galleryleft.gif)', backgroundPosition: 'left top', backgroundRepeat: 'no-repeat', fontSize: '11px', color: '#ffffff', top: '15px', left: '15px', position: 'absolute', paddingTop: '25px' }); 
        $('a.gallright').css({ width: '53px', height: '45px', display: 'block', textIndent: '0', backgroundImage: 'url(/image/galleryright.gif)', backgroundPosition: 'right top', backgroundRepeat: 'no-repeat', fontSize: '11px', color: '#ffffff', top: '15px', left: '430px', position: 'absolute', paddingTop: '25px' }); 
       } 

       function ShowGalleryOptions() { 

        jQuery.easing.def = "easeOutQuint"; 
        $('.gallery-title').animate({ top: '0px' }, 800); 
        $('.gallery-nav').animate({ bottom: '0px' }, 800); 

       } 

       function HideGalleryOptions() { 

        $('.gallery-title').animate({ top: '-30px' }, 800); 
        $('.gallery-nav').animate({ bottom: '-60px' }, 800); 

       } 

       function StopAll() { 

        $('.gallery-title').stop(); 
        $('.gallery-nav').stop(); 

       } 


       function MoveGallery(pic) { 

        $('#test2').html('>> <br />' + pic[_GalleryCurrent].src + " " + pic[_GalleryCurrent].height + " " + pic[_GalleryCurrent].width + "<br />Current: " + _GalleryCurrent); 

        $('.gallery').append('<img id="gallery-current" style="display:none;" src="' + pic[_GalleryCurrent].src + '" width="' + pic[_GalleryCurrent].width + '" height="' + pic[_GalleryCurrent].height + '" alt="' + pic[_GalleryCurrent].alt + '" />'); 
        $('#gallery-current').css({ opacity: 0, display: 'block' }); 
        $('.gallery img').css({ position: 'absolute', top: '0px', left: '0px' }); 
        //jQuery.easing.def = "easeOutElastic"; 

        $('.gallery-title p').html(pic[_GalleryCurrent].alt); 

        $('#gallery-current').animate({ opacity: 1 }, 1200, function() { 

         $('#gallery-last').remove(); 
         $('#gallery-current').attr('id', 'gallery-last'); 

        }); 

       } 


       $(function() { 

        var pic; 
        pic = $(".gallery").children("img"); 
        _GalleryMax = pic.length - 1; 
        _GalleryCurrent = 0; 

        //$('#test2').html('>><br />' + pic[_].src + " " + pic[0].height + " " + pic[0].width + "<br />Current: " + _GalleryCurrent); 

        $('.gallery').css({ height: 283, overflow: 'hidden', position: 'relative' }); 
        $('.gallery').html(''); 

        DrawGalleryOptions('.gallery'); 

        $('.gallery').append('<img id="gallery-last" src="' + pic[_GalleryCurrent].src + '" width="' + pic[_GalleryCurrent].width + '" height="' + pic[_GalleryCurrent].height + '" alt="' + pic[_GalleryCurrent].alt + '" />'); 
        $('.gallery-title p').html(pic[_GalleryCurrent].alt); 

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

         //alert('on'); 
         StopAll(); 
         ShowGalleryOptions(); 

        }, 
        function() { 

         //alert('off'); 
         StopAll(); 
         HideGalleryOptions(); 

        }); 

        $('a.gallright').click(function() { 

         $('#gallery-current').stop(false, true); 

         //alert('boota'); 
         _GalleryCurrent = _GalleryCurrent + 1; 
         if (_GalleryCurrent > _GalleryMax) { 
          _GalleryCurrent = 0; 
         } 

         MoveGallery(pic); 

        }); 

        $('a.gallleft').click(function() { 

         $('#gallery-current').stop(false, true); 

         //alert('boota'); 
         _GalleryCurrent = _GalleryCurrent - 1; 
         if (_GalleryCurrent < 0) { 
          _GalleryCurrent = _GalleryMax; 
         } 

         MoveGallery(pic); 

        }); 

       }); 

       //--> 

      </script> 

      <div class="gallery"> 

       <img class="gall-img" src="/image/gallery1.jpg" width="503" height="283" alt="Person on a lake" /> 
       <img class="gall-img" src="/image/gallery2.jpg" width="503" height="283" alt="Building university" /> 
       <img class="gall-img" src="/image/gallery3.jpg" width="503" height="283" alt="Random colours" /> 
       <img class="gall-img" src="/image/gallery4.jpg" width="503" height="283" alt="Abstract - dark blue?" /> 
       <img class="gall-img" src="/image/gallery5.jpg" width="503" height="283" alt="Random abstract" /> 

      </div> 

      <div id="test2" style="font-size:18px;"></div> 


</body> 
</html> 

любая помощь очень ценится !!

EDIT # 1: В дополнение к вышесказанному, я бы прочитал, что IE7 имеет проблемы с селектором img, но я попытался изменить его на универсальное имя класса и т. Д. Безрезультатно. Есть еще подсказки?

EDIT # 2: Я все еще борется с этим - я добавил живой пример здесь: (слишком новый, чтобы добавить ссылки это, кажется, извините!)

+0

http://gallery.andycopley.co.uk/gallery.htm –

+0

Ох! Немного прогресса. Я изменил пример, поэтому галерея слишком высока. используя этот пример, вы можете увидеть в IE7, что элементы управления галереи все еще отображаются, но BENEATH изображения. Так что Кит был прав с предложением CSS. Я все еще не могу исправить это, однако никакое количество трюков zIndex, похоже, не приводит к обратному обращению под элементами управления галереей. Пожалуйста, скажите, что есть простое/изящное решение css !? –

ответ

1

Исправлена ​​ошибка после многократного воспроизведения. Как Кейт предположил, что это просто ошибка CSS.

IE7 нужно немного напоминать, что ZIndex уровни некоторые элементы были на, так что я вставил следующую

$('.gallery-nav, .gallery-title').css({ position: 'absolute', left: '0px', zIndex: '1100' }); // random reassignement of gallery zIndex, because IE7 doesn't behave 

Внутри функции ход галереи (как раз перед анимацией).

Joy!

1

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

Это позволит нам быстрее увидеть, что происходит, помогать понять и диагностировать поведение.

Я мог бы c & p ваш код, но мне еще нужно было бы найти фотографии и т. Д., Чтобы даже изучить его.

До тех пор, проверить Firebug Lite для IE: http://getfirebug.com/lite.html и просто включать в себя следующее:

<script src="http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js"></script> 

Я предполагаю, что с верхней части моей головы, что б/с она работает в других браузерах и вас «используя jQuery, который очень хорошо нормализуется, что это, вероятно, проблема с CSS, но пока я не увижу образец страницы, это просто быстрое предположение.

+0

Яркий указатель Firebug - это то, что, наконец, дало его мне - столько спасибо. Я бы проголосовал за тебя, если бы у меня была власть! –

+0

Рад помочь. Я знаю, что вы меня проголосуете, когда получите репутацию. ;) Благодаря. –

 Смежные вопросы

  • Нет связанных вопросов^_^