zoukankan      html  css  js  c++  java
  • JQ无缝轮播图-插件封装

    类似京东的这种无缝轮播效果:

    实例代码下载

    HTML代码:

     1 <body>
     2 <!-- /*觅me 探索生活*/ -->
     3   <div class="test">
     4   <!-- 觅me 探索生活 》 标题 -->
     5     <div class="test-title">
     6       <span>觅me</span>
     7       <img src="./images/logo.png" alt="">
     8       <span>探索生活</span>
     9     </div>
    10   <!-- 觅me 探索生活  滑动区域   -->
    11     <div class="test-scroll">
    12       <div class="test-scroll-1">
    13         <img src="./images/3.webp" alt="">
    14         <br>
    15         <span>看中性价比和安全,17万出头买福特翼虎值得吗?</span>
    16         <br>
    17         <span>
    18           预算十七八万,如果要选择合资紧凑型SUV,选择面其实并不多,几款老牌劲旅,本田CR-V、日产奇骏、丰田RAV4、福特翼虎、马自达CX-5,而且这个价位能选择的,大多数是这些车型的中低配,甚至是低配,所以就需要消费者在这其中做选择的时候,权衡方方面面的因素要更多了,这些车型都有自己的消费者群体。
    19         </span>
    20       </div> 
    21       <div class="test-scroll-1">
    22         <img src="./images/1.webp" alt="">
    23         <br>
    24         <span>挑飞度战五菱,这款7.99万起的比亚迪,能走上神坛?</span>
    25         <br>
    26         <span>
    27           放开二胎政策后,给国内的汽车市场注入了一剂猛药,因此催生了一个词——二胎车。很多人买7座车,不论是MPV还是7座SUV,给人的第一感知是要生二胎了?针对二胎车,合资品牌推出众多相应的车型,自主品牌更是纷纷效仿。但由于自主品牌自身在研发的不足,导致中国的“二胎车”缺乏国际范,不过下面这款比亚迪车型,或许颠覆我们对自主MPV的看法,走上神坛!
    28         </span>
    29       </div>
    30       <div class="test-scroll-1">
    31         <img src="./images/2.webp" alt="">
    32         <br>
    33         <span>133万全款订车三年后提车,也就特斯拉能干得出来</span>
    34         <br>
    35         <span>
    36           众筹搞项目在前俩年就像现如今的共享经济一样繁荣,其中混着不少投机分子盯着老百姓的荷包忽悠,当然也有不少蛮不错的项目,让好的概念得以面市,只不过众筹这种形式都是玩玩小钱的,大不了就万把块钱,然而这个地球就有人牛气,搞个项目能哄的全球的有钱人乖乖掏钱,而且一套就是133万......
    37         </span>
    38       </div>
    39       <div class="test-scroll-1">
    40         <img src="./images/3.webp" alt="">
    41         <br>
    42         <span>看中性价比和安全,17万出头买福特翼虎值得吗?</span>
    43         <br>
    44         <span>
    45           预算十七八万,如果要选择合资紧凑型SUV,选择面其实并不多,几款老牌劲旅,本田CR-V、日产奇骏、丰田RAV4、福特翼虎、马自达CX-5,而且这个价位能选择的,大多数是这些车型的中低配,甚至是低配,所以就需要消费者在这其中做选择的时候,权衡方方面面的因素要更多了,这些车型都有自己的消费者群体。
    46         </span>
    47       </div> 
    48       <div class="test-scroll-1">
    49         <img src="./images/1.webp" alt="">
    50         <br>
    51         <span>挑飞度战五菱,这款7.99万起的比亚迪,能走上神坛?</span>
    52         <br>
    53         <span>
    54           放开二胎政策后,给国内的汽车市场注入了一剂猛药,因此催生了一个词——二胎车。很多人买7座车,不论是MPV还是7座SUV,给人的第一感知是要生二胎了?针对二胎车,合资品牌推出众多相应的车型,自主品牌更是纷纷效仿。但由于自主品牌自身在研发的不足,导致中国的“二胎车”缺乏国际范,不过下面这款比亚迪车型,或许颠覆我们对自主MPV的看法,走上神坛!
    55         </span>
    56       </div>
    57     </div>
    58   <!-- 觅me 探索生活 滚动按钮 -->
    59     <div class="test-scroll-btn">
    60       <span class="selected"></span>
    61       <span></span>
    62       <span></span>
    63     </div>
    64   <!-- 觅me 探索生活 左右按钮 -->
    65     <div class="test-btn">
    66       <span class="prev">&lt;</span>
    67       <span class="next">&gt;</span>
    68     </div>
    69   </div>
    70 </body>
    View Code

    CSS代码:

      1 <style>
      2     *{
      3       padding:0;
      4       margin:0;
      5     }
      6     body{
      7       background:#F0F3EF;
      8     }
      9     /*觅me 探索生活*/
     10     .test{
     11       width:390px;
     12       height:450px;
     13       background: #fff;
     14       position: relative;
     15       margin:100px;
     16       padding:20px;
     17       box-sizing:border-box;
     18       overflow:hidden;
     19     }
     20     /*觅me 探索生活 --> 标题*/
     21     .test-title{
     22       margin-bottom: 4px;
     23     }
     24     .test-title>span:first-child{
     25       color:#222;
     26       font-size:22px;
     27       font-weight:bold;
     28     }
     29     .test-title img{
     30       vertical-align: middle;
     31     }
     32     .test-title>span:last-child{
     33       color:#999;
     34       font-size:14px;
     35     }
     36 
     37     /*觅me 探索生活 --> 滑动区域*/
     38     .test-scroll{
     39       width:1950px;
     40       height:355px;
     41       border-bottom:1px solid #f5f5f5;
     42       position: absolute;
     43       left:-390px;
     44       display: flex;
     45       justify-content:space-around;
     46       cursor:pointer;
     47     }
     48     .test-scroll-1{
     49       /*margin:0 20px;*/
     50       width:350px;
     51       height:355px;
     52       display: inline-block;
     53       /*border:1px solid;*/
     54     }
     55     /*觅me 探索生活 --> 滑动区域 --> 标题*/
     56     .test-scroll-1>span:first-of-type{
     57       display: inline-block;
     58       width:350px;
     59       height:50px;
     60       line-height: 50px;
     61       color:#333;
     62       font-size:16px;
     63       /*border:2px solid;*/
     64       overflow:hidden;
     65       text-overflow:ellipsis;
     66       white-space:nowrap;
     67     }
     68     .test-scroll-1>span:last-of-type{
     69       display: inline-block;
     70       width:350px;
     71       height:40px;
     72       color:#999;
     73       font-size:14px;
     74       /*border:2px solid;*/
     75       overflow:hidden;
     76       text-align:center;
     77     }
     78 
     79     /*觅me 探索生活 滚动按钮*/
     80     .test-scroll-btn{
     81       position: relative;
     82       /*border:1px solid;*/
     83       top:355px;
     84       text-align:center;
     85     }
     86     .test-scroll-btn>span{
     87       display: inline-block;
     88       width:6px;
     89       height:6px;
     90       border:2px solid #b9beba;
     91       border-radius:50%;
     92       margin:10px 4px 0 4px;
     93       cursor:pointer;
     94     }
     95     .test-scroll-btn .selected{
     96       background: #eb3436; 
     97       border:2px solid transparent;
     98       box-shadow:0 0 2px #eb3436;
     99     }
    100     /*觅me 探索生活 左右按钮*/
    101     .test-btn{
    102       width:100%;
    103       height:40px;
    104       position: absolute;
    105       left:0px;
    106       top:50%;
    107       margin-top:-20px;
    108       /*border:1px solid;*/
    109     }
    110     .test-btn>span{
    111       width:20px;
    112       height:40px;
    113       line-height:40px;
    114       text-align:center;
    115       display: inline-block;
    116       font-size:20px; 
    117       background: #d9d9d9;
    118       color:hsla(0,0%,100%,.4);
    119     }
    120     .test-btn>span:last-child{
    121       float:right;
    122     }
    123     .test-btn>span:hover{
    124       cursor:pointer;
    125       background: #999999;
    126     }
    127   </style>
    View Code
    JS代码:
     1 <script src="./js/slidings.js"></script>
     2 <script>
     3     var params={
     4       client:$('.test'),
     5       move:$('.test-scroll'),
     6       moveChild:$('.test-scroll>div'),
     7       scrollBtn:$('.test-scroll-btn span'),
     8       scrollBtnColor:'selected',
     9       nextBtn:$('.next'),
    10       prevBtn:$('.prev'),
    11       i:1,
    12       timer:null,
    13       times:1200
    14     }
    15 
    16   slidings(params);
    17 </script>
    View Code

     插件代码:

     1  function slidings(params){
     2         params.timer=setInterval(function(){
     3           params.i++;  
     4           moveImg(params.i)
     5         },params.times);
     6 
     7         $(params.client).hover(function(){
     8           clearInterval(params.timer)
     9         },function(){
    10            params.timer=setInterval(function(){
    11             params.i++;  
    12             moveImg(params.i)
    13           },params.times);
    14         })
    15 
    16         $(params.nextBtn).click(function(){
    17           params.i++;
    18           moveImg(params.i);
    19         });
    20 
    21         $(params.prevBtn).click(function(){
    22           params.i--;
    23           moveImg(params.i);
    24         });
    25 
    26         $(params.scrollBtn).click(function(){
    27           var _index=$(this).index()+1;
    28           params.i=_index;
    29           moveImg(params.i);
    30         });
    31 
    32         function moveImg(){
    33           if (params.i == params.moveChild.length-1) {
    34             console.log(params.i);
    35             params.i=1;
    36             $(params.move).css({'left':'0'});
    37           }
    38 
    39           if(params.i == 0){
    40             params.i=params.moveChild.length-2;
    41             $(params.move).css({left:((params.moveChild.length-1)*-params.client.outerWidth())});
    42           }
    43 
    44 
    45           $(params.move).stop().animate({'left':-params.client.outerWidth()*params.i+'px'},params.times,function(){
    46             
    47           });
    48 
    49           if (params.i == params.moveChild.length-1) {
    50             $(params.scrollBtn).eq(0).addClass(params.scrollBtnColor).siblings().removeClass(params.scrollBtnColor);
    51           }else{
    52             $(params.scrollBtn).eq(params.i-1).addClass(params.scrollBtnColor).siblings().removeClass(params.scrollBtnColor);
    53           }
    54             
    55         }
    56 
    57  }
    View Code

    插件使用说明:

    无缝轮播图: 滑动的是改变move的left,而非moveChild;
    页面布局样式:
    (1)一开始布局时,第一图前有最后一图,最后一图后有第一图
    (2)style{
    
       move --> position: absolute 
            --> left: -client.outerWidth()
            
    }
    3区域: 
     client 可视区域
     move   滑动区域
     moveChild 滑动区域的每一个子块
     2按钮:
     scrollBtn 滚动(点击)按钮
     scrollBtnColor 滚动(点击)按钮添加类名改变当前按钮颜色 
     nextBtn/prevBtn 左右按钮
     初始值
      i=1 代表下标0是最后图,下标1是第一图
     // 注:i=1的原因是,一开始布局时,第一图前有最后一图,最后一图后有第一图,
     //     为了第一眼看到的是第一图,要做move.style.left=moveChild.width,且初始时第一图下标是1而非0
      timer 定时器名称(自动轮播)
      times 动画时间
     var params={
      client:$('.container'),
      move:$('.list'),
      moveChild:$('.list li'),
      scrollBtn:$('.nav span'),
      scrollBtnColor:'.selected'
      nextBtn:$('.next'),
      prevBtn:$('.pre'),
      i:1,
      timer:null,
      times:2000,
     }
    
     slidings(params);
    
    
  • 相关阅读:
    史上最刁钻的十道英语面试题
    99%的人连Where are you from都不会回答?
    库存管理与订单的控制
    订单处理逻辑
    配送规划
    多商家电子商务解决方案
    电商库存规划
    库存管理从入门到精通
    商家报名系统
    经销商管理
  • 原文地址:https://www.cnblogs.com/xzsz/p/9052839.html
Copyright © 2011-2022 走看看