jquery

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > jquery > jquery无缝轮播

jquery插件实现无缝轮播

作者:阿飞超努力

这篇文章主要为大家详细介绍了jquery插件说下无缝轮播,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

无缝轮播是一个很常见的效果,理解逻辑之后就很简单了。

效果如下

代码部分

<!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>

思路解释

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文