jQuery .cycle () невидим в браузерах Webkit [Safari / Chrome] при первой загрузке (после обновления все работает отлично!) - PullRequest
2 голосов
/ 08 октября 2009

Я использую цикл jQuery для реализации эффекта слайд-шоу.

Вы можете нажать на любое изображение слайд-шоу, чтобы перейти к следующему.

Это прекрасно работает во всех браузерах. Только в Safari происходит нечто действительно странное. После загрузки первой страницы изображения слайд-шоу не отображаются вообще! После перезагрузки страницы (путем обновления или нажатия кнопки «Перейти» рядом с адресной строкой) все работает так, как должно.

Что здесь происходит? Я делаю что-то неправильно? Как я могу это исправить?


Обновление:

Я использую последние версии jQuery и плагина Cycle. Вот код, который я использую для вызова .cycle ():

if (1 < $('.image-list li').size()) {
 $('.image-list').cycle({ fx: 'uncover', speed: 200, timeout: 4000, next: $('.image-list li') }).addClass('image-list-cycle');
}

Ответы [ 2 ]

8 голосов
/ 18 июля 2011

Использование $(window).load вместо $(document).ready, кажется, также помогает.

3 голосов
/ 08 октября 2009

Если вы просто Google для этой ошибки, вы найдете множество людей, имеющих проблемы с плагином jQuery, примененным к изображениям. Неприятности случаются обычно с точки зрения позиции и показа.

Мне кажется, что когда-нибудь скрипт запускается непосредственно перед загрузкой изображений, а используемые значения ширины / длины для циклического отображения изображений неверны. Я бы предложил вам добавить что-то подобное на свою страницу (адаптировать классы и имена к вашим потребностям):

<script type="text/javascript">
  $(document).ready(
    function() {
      $('.image-list li').each(function({$(this).css({
        [SET HERE POSITION, WIDTH, ETC]});});
      $('.image-list').cycle([OPTIONS]);});
</script>
...