>

基于JQuery达成图片轮播效果,基于Jquery达成主题

- 编辑:正版管家婆马报彩图 -

基于JQuery达成图片轮播效果,基于Jquery达成主题

投机写了一个纯jq形式的横向轮播宗旨图,可点击小圆点只怕左右开关举行切换,属于定宽类型。改成自适应宽度的也简单,将css里面包车型地铁bannerCon宽度改为百分比,再在js里面将ul和li的宽度跟随父级容器的宽度变化就能够,需求用到$(window).resize。

本文实例叙述了基于Jquery完结核心图淡出淡入效果代码。共享给我们供大家仿照效法。具体如下:

匹配到IE6+以上浏览器,有轮播速度和切换间隔多少个参数能够改。

以此容器用了百分比上升的幅度,图片始终维持居中处理,定宽或然自适应宽度都以能够的。

效益图如下:

极其到IE6+以上浏览器,有淡出淡入速度和切换间隔多个参数能够改。

图片 1

运作效果截图如下:

Html代码如下:

图片 2

<html>
<head>
 <meta charset="utf-8">
 <title>banner图</title>
 <link href="css/style.css" rel="stylesheet"/>
 <script src="js/jquery-1.9.1.min.js"></script>
 <script src="js/common.js"></script>
</head>
<body>
 <div class="wrap">
 <div class="banner">
  <div class="bannerCon">
  <ul class="imgList">
   <li><a href="#"><img src="images/banner01.jpg" alt="图片 3"/></a></li>
   <li><a href="#"><img src="images/banner02.jpg" alt="图片 4"/></a></li>
   <li><a href="#"><img src="images/banner03.jpg" alt="图片 5"/></a></li>
  </ul>
  <ul class="btnList clearfix">
   <li class="cur"></li>
   <li></li>
   <li></li>
  </ul>
  < 
  > 
  </div>
 </div>
 </div>
</body>
</html>

切实代码如下:

Css样式如下:

Html代码如下:

@charset "utf-8";
/* 简单reset */
body, p, ul, ol, li {
 margin: 0;
 padding: 0;
}
ul, ol {
 list-style: none;
}
img { border:none; }
a,button{ outline: none; }
.clearfix:after {
 visibility: hidden;
 display: block;
 font-size: 0;
 content: " ";
 clear: both;
 height: 0;
} 
/* 具体样式 */
.banner {
 position: relative;
 height: 400px;
 overflow: hidden;
}
.banner .bannerCon {
 position: absolute;
 top: 0;
 left: 50%;
 width: 800px;
 height: 400px;
 margin-left: -400px;
 overflow: hidden;
}
.bannerCon .imgList {
 position: absolute;
 top: 0;
 left: 0;
 width: 99999px;
 height: 400px;
}
.bannerCon .imgList li {
 float: left;
 width: 800px;
 height: 400px;
}
.bannerCon .imgList li a {
 position: relative;
 display: block;
 height: 100%;
}
.bannerCon .imgList li img {
 width: 800px;
 height: 400px;
}
.bannerCon .pre-nex {
 display: none;
 position: absolute;
 top: 50%;
 width: 40px;
 height: 60px;
 margin-top: -40px;
 font: bold 40px/60px Simsun;
 color: #ccc;
 text-align: center;
 border:none;
 background: rgba(0,0,0,.30);
 filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr=#4c000000, endColorStr=#4c000000);
 cursor: pointer;
 z-index: 3;
}
.bannerCon .pre-nex.show { display: inline-block; }
.bannerCon .prev { left: 13%; }
.bannerCon .next { right: 13%; }
.bannerCon .btnList {
 position: absolute;
 left: 0;
 bottom: 20px;
 width: 100%;
 height: 12px;
 text-align:center;
 z-index: 2;
 _overflow: hidden;
}
.bannerCon .btnList li { display: inline; }
.bannerCon .btnList li span {
 display: inline-block;
 width: 12px;
 height: 12px;
 margin: 0 5px;
 border-radius: 6px;
 background-color:#14829e;
 cursor: pointer;
}
.bannerCon .btnList li.cur span { background-color: #f30; }
<!doctype html>
<html lang="zh-CN">
<head>
 <meta charset="utf-8">
 <title>淡出淡入焦点图</title>
 <link href="css/style.css" rel="stylesheet"/>
 <script src="js/jquery-1.9.1.min.js"></script>
 <script src="js/common.js"></script>
</head>
<body>
 <div class="wrap">
  <div class="banner">
   <div class="bannerCon">
    <!-- 容器有做自适应宽度处理,下面的图片会保持居中显示,建议使用最大尺寸的图片填充 -->
    <ul class="imgList">
     <li><a href="#"><img src="images/banner01.jpg" alt="图片 6"/></a></li>
     <li><a href="#"><img src="images/banner02.jpg" alt="图片 7"/></a></li>
     <li><a href="#"><img src="images/banner03.jpg" alt="图片 8"/></a></li>
    </ul>
    <ul class="btnList clearfix">
     <li class="cur"></li>
     <li></li>
     <li></li>
    </ul>
    < 
    > 
   </div>
  </div>
 </div>
</body>
</html>

Js代码如下:

Css样式如下:

//加载在文本读取之后的js语句 开始 =============================================================
 function Scroll(obj,speed,interval){ //父级容器,轮播速度,切换间隔
  $("."+obj).each(function(){
   var $box = $(this),
   $imgUl = $box.children(".imgList"),
   $imgLi = $imgUl.children("li"),
   $btnUl = $box.children(".btnList"),
   $btnLi = $btnUl.children("li"),
   $btnPreNex = $box.children(".pre-nex"),
   $btnPre = $box.children(".prev"),
   $btnNex = $box.children(".next"),
   n = $imgLi.length,
   width = $imgLi.width(),
   left = parseFloat($imgUl.css("left")),
   k = 0,
   Player;
   $imgUl.css("width",n*width);
   function scroll(){    //轮播事件
    $imgUl.stop().animate({left:-width},speed,function(){
     k += 1;
     $imgUl.css("left",0);
     $imgUl.children("li:first").appendTo($(this));
     $btnLi.removeClass('cur');
     if(k >= n){
      k = 0;
     }
     $btnUl.children("li").eq(k).addClass('cur');   
    });
   }
   $btnLi.click(function(){   //小圆点点击事件
    var index = $btnLi.index(this); 
    $(this).addClass('cur').siblings("li").removeClass('cur');
    if(index >= k){
     var dif = index-k;
     left = -dif*width;
     $imgUl.stop().animate({left:left},speed,function(){
      $imgUl.css("left",0);
      $imgUl.children("li:lt("+dif+")").appendTo($imgUl); 
     });
    }
    else{
     var j = n-(k-index);
     $imgUl.css("left",(index-k)*width);
     $imgUl.children("li:lt("+j+")").appendTo($imgUl);
     $imgUl.stop().animate({left:0},speed); 
    }
    k = index;
   }); 
   $btnPreNex.click(function(){  //左右按钮点击事件
    var index = $btnLi.index(this);  
    if($(this).hasClass('next')){
     if(!$imgUl.is(":animated")){
      k += 1;
      $imgUl.animate({left:-width},speed,function(){
       $imgUl.css("left",0);
       $imgUl.children("li:first").appendTo($(this));
       if(k >= n){
        k = 0;
       }
       $btnUl.children("li").removeClass('cur').eq(k).addClass('cur');
      });
     }
    }
    else {
     if(!$imgUl.is(":animated")){
      k += -1;
      $imgUl.css("left",-width);
      $imgUl.children("li:last").prependTo($imgUl);
      $imgUl.stop().animate({left:0},speed);
      if(k < 0){
       k = n-1;
      }
      $btnUl.children("li").removeClass('cur').eq(k).addClass('cur');
     }
    }
   });  
   $box.hover(      //鼠标移入、移出事件
    function(){
     clearInterval(Player);
     $btnPreNex.addClass('show');
    },
    function(){
     Player = setInterval(function(){scroll()},interval);
     $btnPreNex.removeClass('show');
    }
    );
   Player = setInterval(function(){scroll()},interval);
  });
 } 
 $(function () {       //读取轮播事件
  Scroll("bannerCon",600,4000);
 });  
@charset "utf-8";
/* 简单reset */
body, p, ul, ol, li {
  margin: 0;
  padding: 0;
}
ul, ol {
  list-style: none;
}
img { border:none; }
a,button{ outline: none; }
.clearfix:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
} 
/* 具体样式 */
.banner { height: 400px; }
.banner .bannerCon {
  position: relative;
  width: 60%;
  height: 100%;
  margin: 0 auto;
  overflow: hidden;
}
.bannerCon .imgList {
  width: 100%;
  height: 100%;
}
.bannerCon .imgList li {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #e2f6fd; /* 这个背景是为了展示宽度大于图片宽度时的区域,可以删除 */
  z-index: 1;
}
.bannerCon .imgList li a {
  display: block;
  height: 100%;
  text-align: center;
}
.imgList li a img {
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -400px; /* 这个数值填图片的实际宽度的一半 */
}
.bannerCon .pre-nex {
  display: none;
  position: absolute;
  top: 50%;
  width: 40px;
  height: 60px;
  margin-top: -40px;
  font: bold 40px/60px Simsun;
  color: #ccc;
  text-align: center;
  border:none;
  background: rgba(0,0,0,.30);
  filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr=#4c000000, endColorStr=#4c000000);
  cursor: pointer;
  z-index: 3;
}
.bannerCon .pre-nex.show { display: inline-block; }
.bannerCon .prev { left: 13%; }
.bannerCon .next { right: 13%; }
.bannerCon .btnList {
  position: absolute;
  left: 0;
  bottom: 20px;
  width: 100%;
  height: 12px;
  text-align:center;
  z-index: 6;
  _overflow: hidden;
}
.bannerCon .btnList li { display: inline; }
.bannerCon .btnList li span {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin: 0 5px;
  border-radius: 6px;
  background-color:#14829e;
  cursor: pointer;
}
.bannerCon .btnList li.cur span { background-color: #f30; }

留意加载一下jq库,笔者用的是1.9.1的,其实1.7+的都没难点的。

Js代码如下:

越多美丽内容大家还足以参谋《jQuery主旨图特效汇总》实行学习,希望我们心爱。

//加载在文本读取之后的js语句 开始 =============================================================
  function fadeImg(obj,speed,interval){  //父级容器,淡出淡入速度,切换间隔
    $("."+obj).each(function(){
      var $box = $(this),
        $imgUl = $box.children(".imgList"),
        $imgLi = $imgUl.children("li"),
        $btnUl = $box.children(".btnList"),
        $btnLi = $btnUl.children("li"),
        $btnPreNex = $box.children(".pre-nex"),
        n = $imgLi.length,
        k = 0,
        Player = setInterval(function(){fade()},interval);
      $imgLi.eq(0).fadeIn(speed);             //第一张先淡入
      function fade(){                  //淡出淡入事件
        k += 1;
        if(k >= n){
          k = 0;
        }
        $btnLi.removeClass('cur').eq(k).addClass('cur');
        $imgLi.fadeOut(speed).eq(k).fadeIn(speed);  
      };
      $btnLi.click(function(){              //小圆点点击事件
        var index = $btnLi.index(this);
        $(this).addClass('cur').siblings('li').removeClass('cur');
        $imgLi.fadeOut(speed).eq(index).fadeIn(speed);
        k = index;
      });     
      $btnPreNex.click(function(){            //左右按钮点击事件              
        if(!$imgLi.is(":animated")){
          if($(this).hasClass('next')){
            k += 1;
            if(k >= n){
              k = 0;
            }
          }
          else{
            k += -1;
            if(k < 0){
              k = n-1;
            }
          }
          $btnLi.removeClass('cur').eq(k).addClass('cur');
          $imgLi.fadeOut(speed).eq(k).fadeIn(speed);
        }  
      });   
      $box.hover(                      //鼠标移入事件(不用toggle是为了兼容1.9+的JQ库)  
        function(){
          clearInterval(Player);
          $btnPreNex.addClass('show');
        },
        function(){
          Player = setInterval(function(){fade()},interval);
          $btnPreNex.removeClass('show');
        }
      );        
    });
  }  
  $(function () {              //读取轮播事件
    fadeImg("bannerCon",1000,3000);
  });  

以上正是本文的全体内容,希望能够支持我们。

jq库用1.7+的都以从未有过难点的,希望对大家的就学抱有援救,以为不错的同室就默默的点个赞吧。

您大概感兴趣的文章:

  • jQuery核心图轮播效果落实形式
  • jQuery核心图轮播插件KinSlideshow用法解析
  • 据他们说jquery落成轮播主旨图插件
  • 轻量级jQuery插件slideBox落成带底栏轮播(核心图)代码
  • jQuery插件完成带圆点的难题图片轮播切换
  • jQuery右边选项卡大旨图片轮播特效代码分享
  • jQuery大旨图轮播特效代码分享(3款)
  • 听别人讲JQuery的落到实处图片轮播效果(宗旨图)
  • jquery达成核心轮播效果

您大概感兴趣的稿子:

  • jQuery达成的自适应难题图效果完全实例
  • jQuery宗旨图左右改变职能
  • 轻量级jQuery插件slideBox完结带底栏轮播(主旨图)代码
  • 依附JQuery达成图片轮播效果(宗旨图)
  • jQuery插件达成带圆点的关节图片轮播切换
  • jQuery左侧选项卡大旨图片轮播特效代码分享
  • jQuery插件bxSlider达成响应式大旨图
  • jQuery主旨图轮播效果落成方式
  • 依据jquery实现轮播主题图插件
  • jquery达成自适应banner宗旨图

本文由关于计算机发布,转载请注明来源:基于JQuery达成图片轮播效果,基于Jquery达成主题