2010-12-22 1 views
1

Привет, вкладчики stackoverflow! У меня есть этот скрипт, который получает начальную позицию моего jCarousel через хеш URL-адреса браузера. Что-то вроде text.html # 2.Прокрутите показанный слайд jCarousel на загрузку страницы

Что нужно сделать, так это заставить jCarousel прокручиваться до заданной позиции при загрузке страницы. Однако мой код ниже работает, только если я привяжу его к кликам - он не отвечает на запросы загрузки страницы.

Initialize jCarousel

jQuery('#body_list').jcarousel({ 
     scroll: 1, 
     initCallback: bodylist_initCallback 
}); 

функция обратного вызова

function bodylist_initCallback(carousel) { 
     $(window).load(function() { 
      if(window.location.hash) { 
       var hash = window.location.hash.slice(1); 
       carousel.scroll(jQuery.jcarousel.intval(hash)); 
      } 
     }); 
}); 

Альтернативный свиток вызова Следующие строки работает только в Safari

if(window.location.hash) { 
     var hash = window.location.hash.slice(1); 
     jQuery('#body_list').jcarousel('scroll', hash); 
} 

ответ

5

Вы можете установить опцию start при инициализации jCarousel:

var hash = 1; // Default start index if none is specified in URL 
if (window.location.hash) { 
    hash = parseInt(window.location.hash.slice(1)); 
} 
jQuery('#mycarousel').jcarousel({ 
    start: hash, 
    scroll: 1 
}); 

Update

Если вы хотите увидеть прокрутки анимации при загрузке страницы, попробуйте установить тайм-аут в initCallback опция для jCarousel:

jQuery("#mycarousel").jcarousel({ 
    initCallback: function(carousel) { 
     if (window.location.hash) { 
      var hash = window.location.hash.slice(1); 
      setTimeout(function() { 
       carousel.scroll(parseInt(hash, 10)); 
      }, 500); 
     } 
    } 
}); 

Кажется, что работает в FF/Chrome. Я на Ubuntu, поэтому я не могу попробовать его в IE или Safari.

+0

hmm 'start' устанавливает начало в заданное положение без прокрутки/перемещения панели к нему. –

+0

@James: О, извините, я не поймал это в OP. Я уточню свой ответ. –

+0

Эй, спасибо большое! работал отлично! –

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

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