• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答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
    主站蜘蛛池模板: 久久九九亚洲精品| 久久夜色撩人精品国产小说| 91久久精品电影| 亚洲精品无码av人在线观看| 国产精品龙口护士门在线观看| 国产精品久久久亚洲| 亚洲精品国产电影| 久久精品国产一区二区三区| 欧美精品一本久久男人的天堂 | 日本精品中文字幕| 久久久久久国产精品免费无码| 四虎成人精品| 久久国产精品国语对白| 99久久精品国产一区二区三区 | 51午夜精品免费视频| 亚洲国产精品一区二区久久hs| 国产精品99久久久久久宅男| 国产精品福利网站导航| 国产精品女同一区二区| 久久免费的精品国产V∧| 在线涩涩免费观看国产精品| 久久中文精品无码中文字幕| 国产精品推荐天天看天天爽| 欧美精品一区二区精品久久| 国产精品中文字幕在线观看| 97精品伊人久久大香线蕉app| 久久精品aⅴ无码中文字字幕重口| 日韩精品人妻av一区二区三区| 国内精品伊人久久久久影院对白| 国产成人精品一区二区三区| 久久伊人精品青青草原高清| 精品国内片67194| 久久91精品国产91久久小草| 国语自产拍精品香蕉在线播放| 好属妞这里只有精品久久| 97精品国产91久久久久久| 99re国产精品视频首页| 国产精品亚洲午夜一区二区三区| 国产精品成人在线| 91精品在线国产| 精品亚洲一区二区三区在线播放|