在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
无缝轮播是一个很常见的效果,理解逻辑之后就很简单了。 效果如下代码部分<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>做无缝轮播</title> <script src="js/jquery-3.4.1.min.js"></script> <style> * { margin: 0; padding: 0; user-select: none; } #div { border: 1px solid lightgray; width: 600px; height: 300px; margin: 20px; overflow: hidden; } .item { border: 1px solid lightgray; width: 96%; height: 50px; margin: 10px auto; } </style> </head> <body> <div id="div"> <div class="rollbox"></div> </div> </body> </html> <script> $(document).ready(function() { for (var i = 0; i < 7; i++) { var $item = $("<div class='item'>" + i+ "</div>"); $item.appendTo($("#div .rollbox")); } }) //轮播动作 $(function() { $("#div").roll(1); }) $.prototype.roll = function(span) { span = span == undefined ? 20 : span; //滚动速率 var $that = $(this).find('.rollbox'); var index = 0; var t = setInterval(function() { $that.css('margin-top', index + 'px'); index--; check(); }, span) // $that.mouseenter(function() { clearInterval(t); }) $that.mouseleave(function() { t = setInterval(function() { $that.css('margin-top', index + 'px'); index--; check(); }, span) }) function check(){ var first = $that.children().first(); var top = parseInt(first.css('margin-top').replace('px','')); var bottom = parseInt(first.css('margin-bottom').replace('px','')); var height =first.height(); bw = parseInt(first.css('border-width').replace('px','')); var temp = index+top+height+bottom; if(temp==top-2*bw){ var last = $that.children().last(); last.after(first); $that.css('margin-top','0px'); index=0; } } } </script> 思路解释
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。 |
请发表评论