亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Jquery輪播效果實現過程解析

2019-11-20 10:19:39
字體:
來源:轉載
供稿:網友

輪播是學習jquery開始的第二個實現的動效,也是學習時間最久的一個。在實現輪播的過程中總是會遇到各種各樣的問題,請教過很多人,也多次問過度娘。今天,也不敢果敢的說,可以馬上寫好一個輪播。希望是通過隨筆的方式,記錄下一些思維過程。

首先是html結構,一個簡單的輪播,單張圖片無縫輪播,主要分為三大層:div>ul>li,li里面的img圖片。

其次,css樣式:div固定住寬高,overflow:hidden;ul的寬度建議是動態獲?。ㄏ乱徊綍v是怎么獲?。魂P于li我習慣使用浮動,讓他們依次排列,在ul上要記得清楚浮動(clear:both)。

重要的是jquery的方法,主要有用到的有animate(),setInterval(),hover()。在寫方法之前,縷清一下動效的邏輯:圖片依次循環自右向左滑過,當滑完最后一張時,第一張顯示,如此重復。

1、獲取li的個數length和寬度width 

var len=$('li').length,  liWidth=$('li').width,
 

因為是無縫輪播,要實現自然的過渡,我們還得做點什么,當圖片滑到最后一張時,怎么樣才會很自然的過渡到第一張,這個時候,如果第一張就在最后一張的后面,就可以了,所以,我們需要將第一張clone后append到li的最后

$('li:first').clone().appendTo('ul')
2、獲取ul的寬度:ul的寬度等于所有li的寬度加上克隆的li的寬度

ulWidth=liWidth*(len+1)
似乎準備工作都做好了,那下一步我們就嘗試讓他動起來,首先想到是animate()方法:

animate( properties [, duration ] [, easing ] [, complete ] ),

    第一個參數properties:css的屬性和值的對象,決定動畫的效果,是上下還是左右等;

    第二個參數duration:完成一個動畫的時間,默認是400,單位是毫秒;

    第三個參數easing:動畫過渡使用的緩動函數,默認是swing(linear,swing),一般不用這個參數;

    第四個參數complete:是指完成動畫后執行的操作。

我們的動效是自右向左,所以通過改變ul的margin-left值來實現

$('ul').animate({  'marign-left': -liWidth*index},3000,function(){  if(index==len){   index=0;   $('ul').css({'margin-left':'0px'})  } })  

其中index指的是li的索引值,當li的索引值等于li的length值的時候,也就是動畫執行到了最后一張,那么直接讓ul的margin-left為0,li的索引值也為0。

這樣還存在一個隱患,暫時不提。

下一步,當鼠標離開div的時候,圖片自動播放。這是要用到hover()和setInterval()

setInterval()在W3C是這樣解釋的:按照指定的周期(以毫秒計)來調用函數或計算表達式。不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。

var autoPlay;$('div').hover(function(){  clearInterval(autoPlay); },function(){  autoPlay=setInterval(function(){$('ul').animate({'marign-left': -liWidth*index},3000,function(){  if(index==len){   index=0;   $('ul').css({'margin-left':'0px'});    index++;  } });},3000) }).trigger('mouseleave');

這樣,一個自動播放的功能似乎就實現了,可是我們還可以發現一個bug,第一幀停留的時間似乎有些長,為什么呢?

這個問題還是昨天得到了解決,當圖片執行到最后一張時,他的index馬上變為0,然后會執行兩次,因此在這個判斷中,我們需要當index為0時,讓它自加1,index++,放到判斷條件下。

還有一個問題,是昨天發現的,在這個輪播里面有兩個時間,一個是動畫執行時間,一個是播放時間,前者的時間一定要比后者的時間小,原因是js的執行順序呢是自上而下的,,如果時間一致或者后者時間小于前者,那么,在這個時差里,動畫將進不到判斷條件里來,會一直播放,那么輪播就失敗了。今天就分享到這里,下一次分享加上左右箭頭和hover圓點的輪播效果。

附上完整的代碼:

<html><head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>輪播</title>  <style>    body,p,form,input,button,dl,dt,dd,ul,ol,li,h1,h2,h3,h4{margin:0;padding:0;list-style:none;}    body,button,input,select,textarea{font:12px Arial, Helvetica, sans-serif;color:#333;}    input,select,textarea{font-size:100%;}    .clearfix:after{display:block;content:".";height:0;visibility:hidden;clear:both;font-size:0;line-height:0;}    .clearfix{*zoom:1;}    .big-screen{width: 100%; height: 400px; overflow: hidden; margin: 40px 0;}    .pic-list{height: 400px;}    .pic-list li{float: left; width: 1920px; height: 400px;}   </style></head><body>  <div class="big-screen">    <ul class="pic-list clearfix">      <li>        <a href="javascript:;">          <img src="http://fed.yhd.cn:9000/1920x400/27ae60xfff" alt="picture" width="1920" height="400"/>        </a>      </li>      <li>        <a href="javascript:;">          <img src="http://fed.yhd.cn:9000/1920x400/ae273axfff" alt="picture" width="1920" height="400"/>        </a>      </li>      <li>        <a href="javascript:;">          <img src="http://fed.yhd.cn:9000/1920x400/2757aexfff" alt="picture" width="1920" height="400"/>        </a>      </li>      <li>        <a href="javascript:;">          <img src="http://fed.yhd.cn:9000/1920x400/ae7d27xfff" alt="picture" width="1920" height="400"/>        </a>      </li>    </ul>  </div></body><script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script><script type="text/javascript">$(document).ready(function(){var ul=$('.pic-list'),      li=ul.find('li'),      liW=li.outerWidth(true),      liLen=li.length,      index=0,      autoPlay;    li.first().clone().appendTo(ul);    ul.css({'width':liW*(liLen+1),'margin-left':-liW*index});    function play(){      if(!ul.is('animated')){        ul.stop().animate({          'margin-left':-liW*index        },480,function(){          if(index>liLen){            index=0;            ul.css({'margin-left':-liW*index});            index++;          }        });      }    }    $('.big-screen').hover(function(){      clearInterval(autoPlay);    },function(){      autoPlay=setInterval(function(){        play();        index++;      },500)    }).trigger('mouseleave');})</script></html>  

以上就是為大家分享的jquery輪播效果完整代碼,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品第一页在线播放| 亚洲国产精品一区二区久| 精品视频—区二区三区免费| 一区二区在线免费视频| 亚洲精品999| 中文字幕9999| 国产mv久久久| 91色琪琪电影亚洲精品久久| 97在线日本国产| 久久久久久中文| 欧美中文在线观看国产| 日韩中文字幕网站| 国产精品极品在线| 久久精品久久精品亚洲人| 国产精品爱啪在线线免费观看| 欧美第一淫aaasss性| 亚洲国产精彩中文乱码av| 精品福利在线观看| 精品福利一区二区| 91九色视频在线| 日韩毛片中文字幕| 97精品国产aⅴ7777| 91手机视频在线观看| 亚洲第一福利在线观看| 91在线免费看网站| 久久久久一本一区二区青青蜜月| 视频在线观看99| 不卡伊人av在线播放| 国语自产精品视频在线看抢先版图片| 国产欧美在线视频| 国内精品久久久久久久| 国产精品偷伦视频免费观看国产| 欧美色欧美亚洲高清在线视频| 97精品久久久中文字幕免费| 亚洲欧美日韩在线高清直播| 亚洲免费小视频| 国产精品啪视频| 亚洲成人动漫在线播放| 午夜精品一区二区三区在线视| 亚洲一区二区三区视频播放| 国产精品免费网站| 亚洲精品av在线播放| 狠狠躁夜夜躁人人爽天天天天97| 97av在线影院| 亚洲黄色av女优在线观看| 日韩av手机在线观看| 亚洲国产成人久久| 欧美激情手机在线视频| 成人免费淫片aa视频免费| 美女扒开尿口让男人操亚洲视频网站| 2019中文在线观看| 亚洲美女中文字幕| 中文字幕欧美日韩精品| 亚洲欧美综合另类中字| 欧美自拍视频在线观看| 亚洲自拍偷拍一区| 亚洲视频精品在线| 久久国产精品电影| 午夜精品一区二区三区在线播放| 亚洲精品mp4| 欧美另类99xxxxx| 国产精品成人一区二区三区吃奶| 日韩免费视频在线观看| 国产一区私人高清影院| 欧美成人午夜免费视在线看片| 国产成+人+综合+亚洲欧洲| 97久久超碰福利国产精品…| 久久久亚洲影院你懂的| 这里精品视频免费| 国产一区二区三区三区在线观看| 日韩毛片中文字幕| 国产不卡一区二区在线播放| 国产成人在线亚洲欧美| 欧美日韩aaaa| 黑人巨大精品欧美一区免费视频| 国产玖玖精品视频| 欧美日韩免费区域视频在线观看| 91在线网站视频| 成人激情春色网| 91免费在线视频| 色偷偷888欧美精品久久久| 精品国产91乱高清在线观看| 国产精品激情av在线播放| 欧美高清无遮挡| 91久久精品美女| 欧美日韩在线另类| 成人美女免费网站视频| 国产精品久久久久不卡| 成人激情视频网| 国产精品久久久久久久7电影| 伊人伊成久久人综合网小说| 久久五月情影视| 国产成人亚洲综合91精品| 久久久久久久久久av| 日韩精品www| 国产一区二区三区在线看| 国产a∨精品一区二区三区不卡| 亚洲字幕一区二区| 欧美激情一二区| 日韩经典一区二区三区| 97视频在线观看成人| 精品亚洲一区二区三区四区五区| 国产精品h在线观看| 亚洲激情自拍图| 亚洲激情成人网| 亚洲精品国精品久久99热一| 国产不卡精品视男人的天堂| 亚洲少妇中文在线| 久久久999精品| 亚洲免费av网址| 成人国产精品久久久| 91网站在线免费观看| 奇米4444一区二区三区| 51精品在线观看| 色偷偷偷综合中文字幕;dd| 97视频网站入口| 亚洲欧美另类国产| 中文字幕日韩av| 国产精品久久久久久久久久免费| 欧美日韩国产专区| 午夜精品美女自拍福到在线| 欧美激情日韩图片| 日韩在线免费观看视频| 精品国偷自产在线视频| 亚洲最新av在线| 国产亚洲人成网站在线观看| 蜜臀久久99精品久久久无需会员| 亚洲精品aⅴ中文字幕乱码| 久久香蕉国产线看观看网| 国产精品久久久久99| 国内精品久久久久久中文字幕| 欧美尤物巨大精品爽| 欧美激情国产精品| 九九综合九九综合| 欧美日韩国产123| 欧美老妇交乱视频| 欧美在线性爱视频| 国产成人福利网站| 日韩精品视频中文在线观看| 亚洲人成电影网站色www| 一区二区中文字幕| 国产91色在线|免| 亚洲色图综合久久| 欧美裸体男粗大视频在线观看| 亚洲网站视频福利| 成人中文字幕+乱码+中文字幕| 18久久久久久| 日韩欧美中文免费| 国产午夜精品美女视频明星a级| 成人激情视频在线| 国产一区玩具在线观看| 欧美精品一本久久男人的天堂| 色婷婷综合久久久久| 国产精品网站入口| 久久久久久久国产精品视频| 另类少妇人与禽zozz0性伦| 97在线视频免费| 51视频国产精品一区二区| 国产午夜精品免费一区二区三区| 亚洲网站在线观看| 日韩大片在线观看视频| www.日韩视频| 91精品久久久久久久久久久久久| 国产精品69精品一区二区三区|