你好我有一个滑块小提琴使用另一个stackoverflow问题的 http://jsfiddle.net/mjaA3/2506/ 我想要的是将此滑块变为连续滑块而不会在结束后返回第一个项目 我希望有人可以向我解释如何使用克隆进行此操作,因为我不明白这个想法 ps不需要任何滑块我需要代码因为我正在构建自定义 提前谢谢target = $('ul.triggers li.selected').index();
target === lastElem ? target = 0 : target = target+1;
sliderResponse(target);
答案 0 :(得分:2)
我已更新您的 fiddle ,以便它仍继续播放,因此如果您点击幻灯片,它将继续播放滑块,否则它将无法循环播放。< / p>
关键代码是sliderTiming()
函数:
if (target < lastElem) {
sliderResponse(++target);
}
这意味着sliderResponse
(触发滑动)只会在当前幻灯片不是最后一张时发生。
++target
表示&#34;将1添加到目标,然后在上下文中使用它&#34; (在上下文中,它作为参数传递)。
答案 1 :(得分:1)
好吧,看来你的意思是无限卷轴。我很快就尝试了并且做到了
http://jsfiddle.net/samirkumardas/yznfmLs9/5/
少数事情:
current
幻灯片编号。为简单起见,我使用了auto_target
而不是变量target
。current
滑块数大于幻灯片总数(LI)时,将滑块(UL)left
位置设置为0并将target
滑块设置为1,因为我们已经显示第一个滑块使用重复希望它会有所帮助。
var triggers = $('ul.triggers li');
var images = $('ul.images li');
var lastElem = triggers.length - 1;
var mask = $('.mask ul.images');
var imgWidth = images.width();
var target = 0;
var auto_target = 0;
var mask_width = 340;
var slids_at_a_time = Math.ceil(mask_width / imgWidth);
triggers.first().addClass('selected');
mask.css('width', imgWidth * (lastElem + 1 + slids_at_a_time) + 'px');
function sliderResponse(target) {
mask.stop(true, false).animate({
'left': '-' + imgWidth * target + 'px'
}, 300);
triggers.removeClass('selected').eq(target % images.size()).addClass('selected');
}
triggers.click(function() {
alert('not impletement');
});
$('.next').click(function() {
alert('not impletement');
});
$('.prev').click(function() {
alert('not impletement');
});
function sliderTiming() {
auto_target++;
if (auto_target > images.size()) {
auto_target = 1;
mask.css('left', 0);
}
sliderResponse(auto_target);
}
images.slice(0, slids_at_a_time).clone().appendTo(mask).addClass('duplicate');
var timingRun = setInterval(function() {
sliderTiming();
}, 5000);
function resetTiming() {
clearInterval(timingRun);
timingRun = setInterval(function() {
sliderTiming();
}, 5000);
}
body {
background-color: #000;
position: relative;
font-size: 14px;
font-family: arial;
}
.mask {
float: left;
margin: 40px;
width: 340px;
height: 266px;
overflow: hidden;
}
ul.images {
position: relative;
top: 0px;
left: 0px;
}
ul.images li {
float: left;
width: 170px;
}
ul.triggers {
position: absolute;
top: 310px;
left: 80px;
}
ul.triggers li {
float: left;
margin: 0 5px;
font: bold 16px arial;
cursor: pointer;
background-color: #ccc;
color: #000;
padding: 10px;
list-style-type: none;
}
ul.triggers li.selected {
background-color: red;
color: #000;
}
.control {
position: absolute;
top: 380px;
color: #fff;
cursor: pointer;
}
.prev {
left: 120px;
}
.next {
left: 180px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div class="mask">
<ul class="images">
<li>
<img width="170" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/97/The_Earth_seen_from_Apollo_17.jpg/270px-The_Earth_seen_from_Apollo_17.jpg" />
</li>
<li>
<img width="170" src="http://www.mallorcaweb.net/masm/Planetas/Jupiter.jpg" />
</li>
<li>
<img width="170" src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/FullMoon2010.jpg/280px-FullMoon2010.jpg" />
</li>
<li>
<img width="170" src="http://static.ddmcdn.com/gif/sun-update-1.jpg" />
</li>
<li>
<img width="170" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/06/Neptune.jpg/240px-Neptune.jpg" />
</li>
</ul>
</div>
<ul class="triggers">
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<span class="control prev">Prev</span>
<span class="control next">Next</span>