【发布时间】:2014-10-23 13:16:01
【问题描述】:
我正在尝试创建一个简单的内容滑块,可以处理动态添加到滑块的内容。我发现的所有“轻量级”插件都没有提供这样的功能,或者即使提供了,也无法正常工作。
var $left = $('.left'),
$right = $('.right'),
$months = $('.sub ul');
$left.click(function(){
for(i = 0; i < 3; i++){
$months.find('li').first().before($.parseHTML('<li>xxx</li>'));
}
pos = $months.position();
$months.css('left', pos.left + 90);
});
$right.click(function(){
for(i = 0; i < 3; i++){
$months.find('li').last().after($.parseHTML('<li>xxx</li>'));
}
pos = $months.position();
$months.css('left', pos.left - 90);
});
这是我到目前为止得到的代码,这里有一个例子 - http://jsfiddle.net/kkr4zg0r/2/。它有点工作,但问题是,由于添加了新内容,导航就会消失(您可以通过单击左右几次来了解我的意思)。
我知道这有什么问题 - 新添加的项目“移动”了内容,我需要做比在元素的左侧位置减去/添加 90px 更好的计算,但我不知道如何获得元素的正确索引,并且基本上通过 3(或 6)个元素精确地(并且正确地)滑动。
目前,每当按下导航按钮时,代码都会添加额外的元素,如果我可以获得当前可见的第一个/最后一个元素的索引,我可能会判断我是否需要添加更多元素,然后才添加它们。
这是我要达到的目标的基本说明
编辑
我已将 jsfiddle 更改为正确的。
【问题讨论】:
-
您能否更具体地说明您想要实现的目标?我了解您的小提琴,并且还看到由于您的代码而导致导航超出范围-但我仍然不明白,您希望滑块如何...
-
我希望滑块能够来回滚动月份,并动态添加新的未加载月份。它也会在几年之间跳跃。目前没有迹象表明显示了哪些年份月份,因为稍后会添加。
-
好的...明白了...因为已经有了解决方案,我现在必须离开...我会保持原样...但是如果您希望我这样做,我将提供另一种解决方案,无需重新定位幻灯片 - 并且仅加载新的,如果需要的话......明天......
标签: javascript jquery slider