我正在尝试创建一个轮播但是在我从div列表的末尾删除元素并将其应用到开头之后,它只会向下移动另一个元素而不占用列表开头的空格。请看看你是否可以帮我解决这个问题。
代码是:使用按钮启动轮播。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="jquery-1.3.2.js"></script>
<script>
$(function(){
$("#but").click(function(){
$(".slides").animate({left: "+=170"},2000);
//$('.wrap div').last().before$('.wrap div').first(;
timer=setInterval(function() {
//$(".wrap div:first-child").before($(".wrap div:last-child"))
$( ".wrap div:first-child" ).before($( ".wrap div:last-child" ));
},2000);
});
});
</script>
<style>
.wrap
{
border:1px solid red;
width:1000px;
overflow:hidden;
height:100px;
}
.slides
{
width:150px;
height:150px;
border:1px solid #C6F;
margin-left:2px;
margin-right:2px;
float:left;
margin-top:2px;
margin-bottom:2px;
text-align:center;
position:relative;
}
</style>
</head>
<body>
<div class="container">
<div class="wrap">
<div class="slides">1</div>
<div class="slides">2</div>
<div class="slides">3</div>
<div class="slides">4</div>
<div class="slides">5</div>
</div>
</div>
<button id ="but">hello</button>
</body>
</html>
答案 0 :(得分:0)
可能有更好的方法,但也许这会让你开始:
$("#but").click(function () {
timer = setInterval(function () {
$(".slides").animate({
left: "+=170"
}, 2000);
$(".wrap div:first-child").before($(".wrap div:last-child"));
$(".slides").animate({
left: "-=170"
}, 1);
}, 2010);
});
答案 1 :(得分:0)
你不能只为一种方式制作动画。您正在添加170像素并且从不减去它们。 当您将其插入列表的前面时,需要立即将其向左移动,并将其慢慢设置为视图中的动画
<script>
$(function(){
$("#but").click(function(){
//$('.wrap div').last().before$('.wrap div').first(;
timer=setInterval(function() {
//$(".wrap div:first-child").before($(".wrap div:last-child"))
$(".slides").animate({left: "-=170"},0);
$(".slides").animate({left: "+=170"},2000);
$( ".wrap div:first-child" ).before($( ".wrap div:last-child" ));
},2000);
});
});
</script>
答案 2 :(得分:0)
1)当动画结束时,所有幻灯片都有style =“left:170px”,你需要将它设置为0
2)如果你想在点击时更改div,那么你应该使用setTimeout并设置比动画更大的时间间隔,否则它有时不起作用(上次动画刻度和归零之间的种类条件)。
3)170px太大了它是155px。
div_width 150px + border 1px + margin(from left)2px + margin(from right)2px。