BxSlider:刷新/更改页面时保存滑块的位置

时间:2016-05-23 15:33:56

标签: javascript jquery html bxslider

这是一个棘手的问题,我不确定如何解决这个问题。

我正在使用BxSlider这个网站,它会像普通的典型滑块一样滑过图像。问题是我需要一种方法来保存用户所在滑块的最后位置,以便当他们刷新或导航到网站上的其他页面时,它不会重置回第一张幻灯片。

我的意思的图片示例:

Position of slider enter image description here

图片(1):滑块的当前位置。

图片(2):刷新或页面更改后滑块的位置。

我需要滑块从最后一张幻灯片继续,而不是重置回第一张幻灯片。

以下是滑块以及HTML的示例JsFiddle

<ul class="bxslider">
<li><img src="http://bxslider.com/images/730_200/hill_trees.jpg" /></li>
<li><img src="http://bxslider.com/images/730_200/me_trees.jpg" /></li>
<li><img src="http://bxslider.com/images/730_200/houses.jpg" /></li>
<li><img src="http://bxslider.com/images/730_200/tree_root.jpg" /></li>
<li><img src="http://bxslider.com/images/730_200/hill_fence.jpg" /></li>
<li><img src="http://bxslider.com/images/730_200/trees.jpg" /></li>

任何想法都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

bxSlider提供两种选择:startSlideonSlideAfter

您可以在此处查看他们的文档:Docs

然后,每次幻灯片更改时您需要执行此操作,您可以使用localStorage.setItem()存储当前索引,并且在加载页面时,您可以使用localStorage.getItem()检索当前索引。

JS:

$(document).ready(function() {

    var startIndex = localStorage.getItem("currentIndex");
    if(startIndex == null)
        startIndex = 0;

    $('.bxslider').bxSlider({
    startSlide: startIndex,
        mode: 'horizontal',
        infiniteLoop: true,
        auto: true,
        autoStart: true,
        autoDirection: 'next',
        autoHover: true,
        pause: 3000,
        autoControls: false,
        pager: true,
        pagerType: 'full',
        controls: true,
        captions: true,
        speed: 500,
        onSlideAfter: function($slideElm, oldIndex, newIndex) {save($slideElm, oldIndex, newIndex)}
});

    function save($slideElm, oldIndex, newIndex) {
        console.log(oldIndex + " " + newIndex);

        localStorage.setItem("currentIndex", newIndex);
    }
})

小提琴:http://jsfiddle.net/Yq3RM/1264/