欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jQuery实现的网站banner图片无缝轮播效果完整实例

程序员文章站 2023-11-12 18:54:40
本文实例讲述了jquery实现的网站banner图片无缝轮播效果。分享给大家供大家参考,具体如下:

本文实例讲述了jquery实现的网站banner图片无缝轮播效果。分享给大家供大家参考,具体如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">
<title>图片轮播</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel=" rel="external nofollow" stylesheet">
<style type="text/css">
  html,body{
    padding: 0;
    margin: 0;
  }
  ul,ul li{
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .box{
  }
  #banner{
    position: relative;
    height:auto;
    overflow: hidden;
  }
  #banner ul{
    position:absolute;
  }
  #banner ul li{
    float: left;
  }
  #banner ul li img{
    width: 100%;
    height: 100%;
  }
  #banner #prevbtn,#banner #nextbtn{
    height:80px;
    width:30px;
    background:rgba(0,0,0,0.5);
    position:absolute;
    top:50%;
    margin-top:-40px;
    font-size:30px;
    line-height:80px;
    text-align:center;
    text-decoration:none;
    color:white;
    opacity: 0;
    transition: opacity 0.8s ease;
  }
  #banner #prevbtn{
    left:0;
  }
  #banner #nextbtn{
    right:0;
  }
  #banner:hover #prevbtn,#banner:hover #nextbtn{
    opacity: 1;
  }
  .dot{
    height:10px;
    width:10px;
    border-radius:10px;
    background:#2196f3;
    display:inline-block;
    margin:5px;
  }
  .on{
    background: #009688;
  }
</style>
</head>
<body>
  <div class="box">
    <div id="banner">
      <ul id="banner-wrap">
        <li>
          <img src="http://www.zxhuan.com/wp-content/uploads/2016/02/img1.jpg">
        </li>
        <li>
          <img src="http://www.zxhuan.com/wp-content/uploads/2016/02/img2.jpg">
        </li>
        <li>
          <img src="http://www.zxhuan.com/wp-content/uploads/2016/02/img3.jpg">
        </li>
        <li>
          <img src="http://www.zxhuan.com/wp-content/uploads/2016/02/img4.jpg">
        </li>
        <li>
          <img src="http://www.zxhuan.com/wp-content/uploads/2016/02/img5.jpg">
        </li>
      </ul>
    </div>
  </div>
  <script type="text/javascript" src='http://libs.baidu.com/jquery/2.0.0/jquery.js'></script>
  <script type="text/javascript">
    (function($,window,document,undefinen){
      $.fn.bannerswiper=function(option){
        this.default={
          boxwrap:null,//必填
          nextbtn:false,//是否往下启动按钮
          prevbtn:false,//是否往上启动按钮
          autoplay:false,//是否启动自动播放
          times:3000,//自动轮播的时间间隔,
          speed:600,//点击按钮是切换的速度
          circle:false,//是否启动小圆点
          circlealign:"center",//小圆点的对其方式
          circleclick:false//小圆点是否可以点击
        }
        var self=this;
        this.time=null;
        this.options=$.extend({},this.default,option);
        self.flag=true;
        // 插件入口
        this.init=function(){
          this.bulid();
        }
        this.bulid=function(){
          var self=this;
          var wrap=self.options.boxwrap;
          self.num=1;
          self.nowtime=+new date();
          self.width=$(window).width();
          var firstimg=$(wrap).find('li').first();
          var lastimg=$(wrap).find('li').last();
          $(wrap).append(firstimg.clone());
          $(wrap).prepend(lastimg.clone());
          self.length=$(wrap).find('li').length;
          $(wrap).width(self.width*self.length);
          $(wrap).find('li').width(self.width)
          $(wrap).parent().height(480);
          $(wrap).parent().width(self.width);
          $(wrap).css({'left':-self.width*self.num})
          // 是否启动自动轮播
          if(self.options.autoplay){
            self.plays();
          }
          // 是否启动按钮
          if(self.options.nextbtn){
            self.nextbtn();
          }
          // 是否启动按钮
          if(self.options.prevbtn){
            self.prevbtn();
          }
          // 是否启动小圆点
          if(self.options.circle){
            self.circle()
          }
          if(self.options.circleclick){
            self.clickcircle();
          }
        }
        // // 鼠标移入时
        self.on('mouseenter',function(){
          self.stops();
        })
        // 鼠标移出时
        self.on('mouseleave',function(){
          self.plays(1);
        })
        // 开始计时器,自动轮播
        this.plays=function(){
          var self=this;
          // self.stops();
          console.log('play')
          this.time=setinterval(function(){
            self.go(-self.width)
          },self.options.times);
        }
        // 停止计时器
        this.stops=function(){
          console.log('stop');
          clearinterval(self.time)
        }
        // 手动创建按钮元素
        this.prevbtn=function(){
          var self=this;
          var ele=$("<a href='javascript:;' id='prevbtn'><</a>");
          self.append(ele);
          $('#prevbtn').bind("click",function(){
            self.go(self.width);
          })
        }
        // 手动创建按钮元素
        this.nextbtn=function(){
          var self=this;
          var ele=$("<a href='javascript:;' id='nextbtn'>></a>");
          self.append(ele)
          $('#nextbtn').bind("click",function(){
            self.go(-self.width);
          })
        }
        // 手动创建小圆点
        this.circle=function(){
          var self=this;
          var ele=$('<div id="circle-wrap"></div>');
          for(var i=0;i<self.length-2;i++){
            $('<a class="dot" href="javascript:;" rel="external nofollow" ></a>').appendto(ele)
          }
          ele.css({
            "position":"absolute",
            'bottom':'0',
            'right':'0',
            'left':'0',
            'height':'20px',
            "padding":"0 10px",
            'text-align':self.options.circlealign
          });
          self.append(ele);
          self.playcircle(this.num-1);
        }
        //小圆点指定当前项
        this.playcircle=function(num){
          $('#circle-wrap').find('.dot').eq(num).addclass('on').siblings().removeclass('on');
        }
        // 点击小圆点
        this.clickcircle=function(){
          var self=this;
          $('#circle-wrap').find('.dot').on('click',function(){
            self.num=$(this).index()+1;
            self.circleplay()
          })
        }
        // 点击小圆点,图片切换
        this.circleplay=function(){
          self.flag=true;
          if(self.flag){
            self.flag=false;
            $(self.options.boxwrap).stop().animate({
              'left':-self.num*self.width
            },self.options.speed,function(){
              self.flag=true;
            });
          }
          self.playcircle(this.num-1);
        }
        // 点击按钮,进行轮播,以及自动轮播
        this.go=function(offset){
          var self=this;
          if(self.flag){
            self.flag=false;
             if(offset<0){
               self.num++;
               if(self.num>self.length-2){
                 self.num=1;
               }
             }
             if(offset>0){
               self.num--;
               if(self.num<=0){
                self.num=self.length-2
               }
             }
             if(math.ceil($(self.options.boxwrap).position().left)<-(self.length-2)*self.width){
              $(self.options.boxwrap).css({
                'left':-self.width
              });
            }
            if(math.ceil($(self.options.boxwrap).position().left)>-self.length){
              $(self.options.boxwrap).css({
                'left':-self.width*(self.length-2)
              })
            }
            self.playcircle(this.num-1);
            $(self.options.boxwrap).stop().animate({
              'left':$(self.options.boxwrap).position().left+offset
            },self.options.speed,function(){
              self.flag=true;
            });
          }
        }
        this.init();
      }
    })(jquery,window,document)
    $('#banner').bannerswiper({
      boxwrap:"#banner-wrap",
      nextbtn:true,
      prevbtn:true,
      autoplay:true,
      circle:true,
      circleclick:true
    })
  </script>
</body>
</html>

运行效果:

jQuery实现的网站banner图片无缝轮播效果完整实例

感兴趣的朋友可以使用在线html/css/javascript代码运行工具http://tools.jb51.net/code/htmljsrun测试上述代码运行效果。

更多关于jquery相关内容感兴趣的读者可查看本站专题:《jquery图片操作技巧大全》、《jquery表格(table)操作技巧汇总》、《jquery切换特效与技巧总结》、《jquery扩展技巧总结》、《jquery常用插件及用法总结》、《jquery常见经典特效汇总》及《jquery选择器用法总结

希望本文所述对大家jquery程序设计有所帮助。