javascript-在溢出容器中滑动div,然后删除第一个元素并将其附加到末尾
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-在溢出容器中滑动div,然后删除第一个元素并将其附加到末尾,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2765字,纯文字阅读大概需要4分钟。
内容图文
![javascript-在溢出容器中滑动div,然后删除第一个元素并将其附加到末尾](/upload/InfoBanner/zyjiaocheng/682/23a7b922d93840ddada5d0d2d05ddda1.jpg)
现在,当我像下面的代码一样添加.appendTo(“.wrapper”)时,它会消除动画效果.在最终结果中,我希望这样,以便在最左侧的div滑出视线(溢出隐藏效果)时,应将其删除,但应将其添加到幻灯片的末尾,以便可以继续进行幻灯片放映效果.先前的div.
$(document).ready( function(){
var x = 0;
$(".next").on("click", function(){
x -= 245;
// $(".wrapper").css({"marginLeft" : x +"px"}).delay(3000).queue(function(next){
// $(this).css({"marginLeft" : 0})
// $(".element").eq(0).appendTo(".wrapper")
// next();
// })
console.log($(".element").length)
$(".element").each(function(i, e){
console.log(i)
$(this).eq(i).css({"marginLeft" : x +"px"}).appendTo(".wrapper");
})
// $(".element").eq(0).css({"marginLeft" : x +"px"}).appendTo(".wrapper")
})
});
CSS:
.mgcont{
margin:5% auto;
width:970px;
overflow: hidden;
border: 2px solid gray;
}
.wrapper{
/*overflow: hidden;*/
white-space: nowrap;
width:960px;
}
.element{
width: 240px;
height: 300px;
background: tomato;
display: inline-block;
margin-left: 10px;
transition: margin 3s;
}
.prev{
float: right;
}
的HTML:
<div class="mgcont">
<button class="next">next</button>
<button class="prev">PREV</button>
<div class="wrapper">
<div class="element">1</div>
<div class="element">2</div>
<div class="element">3</div>
<div class="element">4</div>
<div class="element">5</div>
<div class="element">6</div>
</div>
</div>
解决方法:
您必须像这样修改您的JavaScript
$(document).ready( function(){
$(".next").on("click", function(){
console.log($(".element").length)
$(".element").each(function(i, e){
console.log(i)
})
$(".element").eq(0).css({"margin-left" : "-245px"}).delay(3000).queue(function(next){
$(this).appendTo(".wrapper").css({"margin-left":"10px"});
$( this ).dequeue();
});
});
});
还要将过渡属性的css修改为
.element{
width: 240px;
height: 300px;
background: tomato;
display: inline-block;
margin-left: 10px;
transition: margin-left 3s;
}
这将完美地工作
如果要使用单独的CSS类来实现它,则必须这样做
$(document).ready( function(){
$(".next").on("click", function(){
console.log($(".element").length)
$(".element").each(function(i, e){
console.log(i)
})
$(".element").eq(0).addClass('translateleft').delay(3000).queue(function(next){$(this).appendTo(".wrapper").removeClass('translateleft');
$( this ).dequeue();
});
});
});
并在您的CSS中为类translationleft定义样式,如下所示
.translateleft{
animation: translateleft 3s;
-webkit-animation:translateleft 3s;
-moz-animation:translateleft 3s;
-o-animation:translateleft 3s;
}
@keyframes translateleft{
from{margin-left:0px;}
to{margin-left:-245px;}
}
@-webkit-keyframes translateleft{
from{margin-left:0px;}
to{margin-left:-245px;}
}
@-moz-keyframes translateleft{
from{margin-left:0px;}
to{margin-left:-245px;}
}
@-o-keyframes translateleft{
from{margin-left:0px;}
to{margin-left:-245px;}
}
查看工作示例See Fiddle
更新
函数中缺少.dequeue()语句.
现在,答案已经更新,可以完美地重复
内容总结
以上是互联网集市为您收集整理的javascript-在溢出容器中滑动div,然后删除第一个元素并将其附加到末尾全部内容,希望文章能够帮你解决javascript-在溢出容器中滑动div,然后删除第一个元素并将其附加到末尾所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。