这是一个棘手的问题,我不确定如何解决这个问题。
我正在使用BxSlider这个网站,它会像普通的典型滑块一样滑过图像。问题是我需要一种方法来保存用户所在滑块的最后位置,以便当他们刷新或导航到网站上的其他页面时,它不会重置回第一张幻灯片。
我的意思的图片示例:
图片(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>
任何想法都将受到高度赞赏。
答案 0 :(得分:1)
bxSlider
提供两种选择:startSlide
和onSlideAfter
您可以在此处查看他们的文档: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);
}
})