Выделите данный слайд jCarousel при загрузке страницы - PullRequest
1 голос
/ 22 декабря 2010

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

То, чего я пытаюсь достичь, это заставить 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);
}

1 Ответ

5 голосов
/ 22 декабря 2010

Вы можете установить опцию 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
});

Обновить

Если вы хотите видеть анимацию прокрутки при загрузкеНа странице попробуйте установить время ожидания в параметре 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.

...