[英]jQuery Imageslider issues
I am following this tutorial how to create your own jquery content slider 我正在按照本教程如何创建自己的jquery内容滑块
to create an image slider everything works fine but i have to use Next
and Previous
in a separate div , how can i make it work? 要创建图像滑块,一切正常,但是我必须在单独的div中使用Next
和Previous
,我如何使其工作?
here is code below 这是下面的代码
<div class="nextprev">
<div class="next">
<a class="next" href="#">next</a>
</div>
<div class="nextborder">
</div>
<div class="prev">
Prev
</div>
</div>
<ul class="im">
<li><img src="<?php echo $this->basePath().'/images/feat/shop/1/1_large.jpg';?>" /><a class="next1" href="#">next</a></li>
<li><img src="<?php echo $this->basePath().'/images/feat/shop/2/2_large.jpg';?>" /><a class="next1" href="#">next</a><a class="previous" href="#">prev</a></li>
<li><img src="<?php echo $this->basePath().'/images/feat/shop/3/3_large.jpg';?>" /><a class="next1" href="#">next</a><a class="previous" href="#">prev</a></li>
<li><img src="<?php echo $this->basePath().'/images/feat/shop/4/4_large.jpg';?>" /><a class="next1" href="#">next</a><a class="previous" href="#">prev</a></li>
<li><img src="<?php echo $this->basePath().'/images/feat/shop/5/5_large.jpg';?>" /><a class="previous" href="#">prev</a><a class="startover" href="#">startover</a></li>
</ul>
I dont want to use next and previous button within <li></li>
so i even tried calling $('.prev').click(function(){ });
我不想在<li></li>
使用下一个和上一个按钮,所以我什至尝试调用$('.prev').click(function(){ });
but did not work ,, any idea to fix this? 但是没有用,有解决这个问题的主意吗?
I haven't tested it, but something like this should work pretty universal. 我还没有测试过,但是类似的东西应该可以通用。
// HANDLE CLICK ON NEXT DIV
$(".next").click(function(){
//SLIDE ONLY IF MARGIN-LEFT IS BIGGER THAN (ALL SLIDES - ONE SLIDE)*(-1)
if($(".im").css("margin-left") > ($(".im").width()-$(".im").find("img").width())*(-1)){
// SET MARGIN-LEFT TO MARGIN-LEFT - ONE SLIDE
$(".im").animate({
"margin-left": $(this).css("margin-left")-$(this).find("img").width();
});
}
});
// HANDLE CLICK ON PREV DIV
$(".prev").click(function(){
//SLIDE ONLY IF MARGIN-LEFT SMALLER THAN 0
if($(".im").css("margin-left") < 0){
// SET MARGIN-LEFT TO MARGIN-LEFT + ONE SLIDE
$(".im").animate({
"margin-left": $(this).css("margin-left")+$(this).find("img").width();
});
}
});
Try something like this: http://jsfiddle.net/38pzs/ 尝试这样的事情: http : //jsfiddle.net/38pzs/
<div class="nextprev">
<div class="next">next</div>
<div class="prev">Prev</div>
</div>
<ul class="im">
<li class="active"><img src="<?php echo $this->basePath().'/images/feat/shop/1/1_large.jpg';?>" /><a class="next1" href="#">next</a></li>
<li><img src="<?php echo $this->basePath().'/images/feat/shop/2/2_large.jpg';?>" /><a class="next1" href="#">next</a><a class="previous" href="#">prev</a></li>
<li><img src="<?php echo $this->basePath().'/images/feat/shop/3/3_large.jpg';?>" /><a class="next1" href="#">next</a><a class="previous" href="#">prev</a></li>
<li><img src="<?php echo $this->basePath().'/images/feat/shop/4/4_large.jpg';?>" /><a class="next1" href="#">next</a><a class="previous" href="#">prev</a></li>
<li><img src="<?php echo $this->basePath().'/images/feat/shop/5/5_large.jpg';?>" /><a class="previous" href="#">prev</a><a class="startover" href="#">startover</a></li>
</ul>
css: CSS:
.im li {
display: none;
}
.im li.active {
display: inherit;
}
html: 的HTML:
$(".prev").on('click', function() {
$('li.active:not(:first-child)').removeClass('active').prev().addClass('active');
});
$(".next").on('click', function() {
$('li.active:not(:last-child)').removeClass('active').next().addClass('active');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.