<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
        主站蜘蛛池模板: 亚洲一区二区三区免费观看| 无码av免费毛片一区二区| jizz免费观看| 成年人网站免费视频| 亚洲日本中文字幕天堂网| 亚洲宅男永久在线| 免费在线观看自拍性爱视频| 69xx免费观看视频| 亚洲美女激情视频| 久久毛片免费看一区二区三区| 成人免费AA片在线观看| 亚洲国产一成人久久精品| 亚洲AV无码AV吞精久久| 华人在线精品免费观看| 成人亚洲网站www在线观看| 久久久久亚洲AV无码观看| 亚洲日本在线免费观看| 亚洲爆乳无码专区| 国产福利免费视频 | 亚洲国产成人久久精品动漫| 亚洲乱码日产精品一二三| 日韩内射激情视频在线播放免费| 亚洲国产一区视频| 久久久久亚洲精品无码网址色欲 | 国产精品内射视频免费| 久久夜色精品国产嚕嚕亚洲av| 亚洲AV无码一区二区三区DV| 蜜桃成人无码区免费视频网站 | 亚洲人成网站在线播放影院在线| 在线免费观看国产| 亚洲AV无码久久寂寞少妇| 免费AA片少妇人AA片直播| 国产精品亚洲综合天堂夜夜| 免费网站看v片在线香蕉| 456亚洲人成影院在线观| 成人免费福利视频| 黄网站色视频免费看无下截| 国产免费午夜a无码v视频| 亚洲AV无码专区在线厂| 日本免费福利视频| 久久人午夜亚洲精品无码区|