<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        js實現移動端輪播圖效果

        來源:懂視網 責編:小OO 時間:2020-11-27 22:32:43
        文檔

        js實現移動端輪播圖效果

        本文實例為大家分享了移動端輪播圖效果展示的具體代碼,供大家參考,具體內容如下:<,0,0,需要把瀏覽器的默認行為阻止掉 $(document).on('touchmove touchstart touchend',strY,endX,endY){ return Math.abs(endX - strX)>;30 || Math.abs(endY - strY) >;30) } function swipeDir(strX,strY,endX,strY,endX,endY).dir = swipeDir(strX,strY,endX,-step*winW);lazyImg();//動畫運動過程中,我們監聽一個定時器:動畫運動完成判斷當前是否運動到邊界,如果運動到達了邊界。
        推薦度:
        導讀本文實例為大家分享了移動端輪播圖效果展示的具體代碼,供大家參考,具體內容如下:<,0,0,需要把瀏覽器的默認行為阻止掉 $(document).on('touchmove touchstart touchend',strY,endX,endY){ return Math.abs(endX - strX)>;30 || Math.abs(endY - strY) >;30) } function swipeDir(strX,strY,endX,strY,endX,endY).dir = swipeDir(strX,strY,endX,-step*winW);lazyImg();//動畫運動過程中,我們監聽一個定時器:動畫運動完成判斷當前是否運動到邊界,如果運動到達了邊界。

        本文實例為大家分享了移動端輪播圖效果展示的具體代碼,供大家參考,具體內容如下

        <!DOCTYPE html>
        <html lang="en">
        <head>
         <meta charset="UTF-8">
         <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
         <title>Document</title>
         <link rel="stylesheet" href="reset.css" rel="external nofollow" >
         <style>
         html,body{
         width:100%;
         overflow-x:hidden;
         }
         html{
         font-size:100px;
         }
         .banner{
         position:relative;
         height:3rem;
         overflow:hidden;
         }
         .banner .wrapper{
         position:absolute;
         top:0;
         left:-100%;
         height:100%;
         }
         .banner .wrapper .slide{
         float:left;
         height:100%;
         background:#eee;
         }
         .banner .wrapper .slide img{
         display:none;
         width:100%;
         height:100%;
         }
         .tip{
         position:absolute;
         left:0;
         bottom:.1rem;
         width:100%;
         height:.16rem;
         text-align:center;
         }
         .tip li{
         display:inline-block;
         margin:0 .03rem;
         width:.16rem;
         height:.16rem;
         background:rgba(0,0,0,0.2);
         border-radius:50%;
         vertical-align:top;
         }
         .tip li.bg{
         background:#007aff;
         }
         </style>
        </head>
        <body>
         <section class='banner'>
         <div class='wrapper'>
         <!--實現無縫滾動:把第一張放末尾 最后一張放開頭-->
         <div class='slide'><img data-src="img/banner5.jpg" alt=""></div>
         <div class='slide'><img data-src="img/banner1.jpg" alt=""></div>
         <div class='slide'><img data-src="img/banner2.jpg" alt=""></div>
         <div class='slide'><img data-src="img/banner3.jpg" alt=""></div>
         <div class='slide'><img data-src="img/banner4.jpg" alt=""></div>
         <div class='slide'><img data-src="img/banner5.jpg" alt=""></div>
         <div class='slide'><img data-src="img/banner1.jpg" alt=""></div>
         </div>
         <ul class='tip'>
         <li class='bg'></li>
         <li></li>
         <li></li>
         <li></li>
         <li></li>
         </ul>
         </section>
        
         <script charset='utf-8' src='zepto.min.js'></script>
         <script charset='utf-8'>
         //REM
         ~function(){
         document.documentElement.style.fontSize = document.documentElement.clientWidth/640*100 + 'px';
         }()
         //頁面中如果自己使用了TOUCH MOVE等原生事件,需要把瀏覽器的默認行為阻止掉
         $(document).on('touchmove touchstart touchend',function(ev){
         ev.preventDefault();
         })
         //BANNER
         var bannerRender = (function(){
         var winW = document.documentElement.clientWidth,
         maxL = 0,
         minL = 0;
         var $banner = $('.banner'),
         $wrapper = $banner.children('.wrapper'),
         $slideList = $wrapper.children('.slide'),
         $imgList = $wrapper.find('img');
         var step = 1,
         count = 0,
         followTimer = null;
        
         //public fn
         function isSwipe(strX,strY,endX,endY){
         return Math.abs(endX - strX)>30 || Math.abs(endY - strY) > 30)
         }
         function swipeDir(strX,strY,endX,endY){
         return Math.abs(endX - strX)>=Math.abs(endY - strY)?(endX - strX>0?'right':'left'):(endY - strY>0?'down':'up');
         }
         //touch start
         function dragStart(ev){
         var point = ev.touches[0];
         $wrapper.attr({
         strL:parseFloat($wrapper.css('left')),
         strX:point.clientX,
         strY:point.clientY,
         isMove:false,
         dir:null,
         changeX:null
         })
         }
         //touch move
         function dragIng(ev){
         var point = ev.touches[0];
         var endX = point.clientX,
         endY = point.clientY,
         strX = parseFloat($wrapper.attr('strX')),
         strY = parseFloat($wrapper.attr('strY')),
         strL = parseFloat($wrapper.attr('strL')),
         changeX = endX - strX;
         //計算出是否滑動以及滑動的方向:只有是左右滑動才進行處理
         var isMove = isSwipe(strX,strY,endX,endY),
         dir = swipeDir(strX,strY,endX,endY);
         if(isMove && /(left|right)/i.test(dir)){
         $wrapper.attr({
         isMove:true,
         dir:dir,
         changeX:changeX
         });
         var curL = strL+changeX;
         curL = curL>maxL?maxL:(curL<minL?minL:curL);
         $wrapper[0].style.webkitTransitionDuration = '0s';
         $wrapper.css('left',curL);
         }
        
        
        
         }
         //touch end
         function dragEnd(){
         var isMove = $wrapper.attr('isMove'),
         dir = $wrapper.attr('dir'),
         changeX = parseFloat($wrapper.attr('changeX'));
         if(isMove && /(left|right)/i.test(dir)){
         if(Math.abs(changeX)>=winW/2){
         if(dir==='left'){
         step++;
         }else{
         step--;
         }
         }
         }
        
         $wrapper[0].style.webkitTransitionDuration = '.2s';
         $wrapper.css('left',-step*winW);
         lazyImg();
         //動畫運動過程中,我們監聽一個定時器:動畫運動完成判斷當前是否運動到邊界,如果運動到達了邊界,我們讓其立馬回到自己的真實位置
         window.clearTimeout(followTimer)
         followTimer = window.setTimeout(function(){
         if(step===0){
         $wrapper[0].style.webkitTransitionDuration = '0s';
         $wrapper.css('left',-(count-2)*winW);
         step = count-2;
         lazyImg();
         }
         if(step===count-1){
         $wrapper[0].style.webkitTransitionDuration = '0s';
         $wrapper.css('left',-winW);
         step = 1;
         lazyImg();
         }
         window.clearTimeout(followTimer)
         },200)
        
         }
         //圖片延遲加載,讓當前的活動塊及相鄰的兩個活動塊進行加載
         function lazyImg(){
         var $cur = $slideList.eq(step),
         $tar = $cur.add($cur.prev()).add($cur.next());
         $tar.each(function(index,item){
         var $img = $(item).children('img');
         if($img.attr('isLoad')==='true'){
         //ATTR存儲或者獲取的屬性值都是一個字符串,如果當前的圖片已經加載過了,我們就不需要重新的加載了
         return;
         }
         var oImg = new Image;
         oImg.src = $img.attr('data-src');
         oImg.onload = function(){
         $img.attr({
         src:this.src,
         isLoad:true
         }).css('display','block')
         oImg = null;
         }
         })
        
         }
        
         return{
         init:function(){
         //init css style
         count = $slideList.length;
         minL = -($slideList.length-1)*winW;
         $wrapper.css('width',$slideList.length*winW);
         $slideList.css('width',winW);
         //lazy img
         lazyImg();
         $banner.on('touchstart',dragStart).on('touchmove',dragIng).on('touchend',dragEnd)
         }
         }
         })()
        
         bannerRender.init();
         </script>
        </body>
        </html>
        

        邊界判斷邏輯可參照下圖

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        js實現移動端輪播圖效果

        本文實例為大家分享了移動端輪播圖效果展示的具體代碼,供大家參考,具體內容如下:<,0,0,需要把瀏覽器的默認行為阻止掉 $(document).on('touchmove touchstart touchend',strY,endX,endY){ return Math.abs(endX - strX)>;30 || Math.abs(endY - strY) >;30) } function swipeDir(strX,strY,endX,strY,endX,endY).dir = swipeDir(strX,strY,endX,-step*winW);lazyImg();//動畫運動過程中,我們監聽一個定時器:動畫運動完成判斷當前是否運動到邊界,如果運動到達了邊界。
        推薦度:
        標簽: 輪播 實現 js
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 四虎成人免费网站在线| 亚洲国产午夜福利在线播放| 97无码免费人妻超级碰碰夜夜| 天堂在线免费观看中文版| 亚洲综合在线视频| 羞羞网站免费观看| 日本视频一区在线观看免费| 国产亚洲精品免费视频播放| 亚洲美国产亚洲AV| **aaaaa毛片免费同男同女| 国产成人精品曰本亚洲79ren| 亚洲AV日韩综合一区尤物| 十八禁无码免费网站| 亚洲一区爱区精品无码| 老牛精品亚洲成av人片| 91成人免费观看网站| 久久精品国产亚洲AV麻豆不卡| 老司机午夜性生免费福利| 亚洲精品国产福利一二区| AAAAA级少妇高潮大片免费看| 国产午夜影视大全免费观看| 亚洲av无码一区二区三区观看| 成全视频在线观看免费| 亚洲国产成人精品女人久久久| 亚洲av综合av一区二区三区| 在线天堂免费观看.WWW| 亚洲毛片在线免费观看| 亚洲午夜免费视频| 久久精品国产亚洲av麻豆蜜芽| 国产美女精品久久久久久久免费 | 精品久久久久久久免费人妻| 中文字幕在线观看亚洲| 成全视频高清免费观看电视剧| 亚洲综合激情九月婷婷 | 九九热久久免费视频| 亚洲理论片在线中文字幕| 日韩免费高清视频网站| 亚洲AV无码专区在线电影成人| 好男人看视频免费2019中文| 九九免费精品视频在这里| MM131亚洲国产美女久久|