久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      JS Zepto 移動(dòng)端的 jQuery

      JS  Zepto 移動(dòng)端的 jQuery

      Zepto

      github地址: https://github.com/madrobby/zepto

      官方地址: http://zeptojs.com/

      中文版地址: http://www.css88.com/doc/zeptojs_api/

      Zepto就是jQuery的移動(dòng)端版本, 可以看做是一個(gè)輕量級(jí)的jQuery

      注意點(diǎn)

      Zepto的設(shè)計(jì)目的是提供 jQuery 的類似的API,但并不是100%覆蓋 jQuery

      jQuery的底層是通過(guò)DOM來(lái)實(shí)現(xiàn)效果的, zepto.js 是用css3 來(lái)實(shí)現(xiàn)的;

      官網(wǎng)下載的zepto,就已經(jīng)包含了官網(wǎng)所述的默認(rèn)模塊了

      github上下載的zepto模塊需要自己導(dǎo)入

      <!--&lt;!&ndash;引入核心模塊;包含許多jQuery中常見(jiàn)方法&ndash;&gt;--> <script src="js/zepto.js"></script> <!--&lt;!&ndash;引入zepto事件模塊, 包含了常見(jiàn)的事件方法on/off/click ...&ndash;&gt;--> <script src="js/event.js"></script> <!--&lt;!&ndash;引入zepto動(dòng)畫(huà)模塊,&ndash;&gt;--> <script src="js/fx.js"></script> <!--&lt;!&ndash;引入zepto動(dòng)畫(huà)模塊的常用方法,&ndash;&gt;--> <script src="js/fx_methods.js"></script>

      Zepto點(diǎn)擊事件

      由于移動(dòng)端的手勢(shì)多而且分單擊雙擊,所以移動(dòng)端的click事件有300ms左右的延遲,所以移動(dòng)端的點(diǎn)擊事件用tab

      $("div").tap(function(){         ...... })

      zepto中touch相關(guān)事件

      touchstart

      touchstart是手指剛觸摸到元素時(shí)觸發(fā)的事件

      touchmove

      touchmove是手指移動(dòng)時(shí)觸發(fā)的事件

      touchend

      當(dāng)手指離開(kāi)指定元素時(shí)觸發(fā)

      注意點(diǎn)

      添加以上三個(gè)事件的時(shí)候用addEventListener

      以上三個(gè)事件對(duì)pc端無(wú)效

      zepto中touch事件的對(duì)象

      touches:

      保存了屏幕上所有手指的列表

      targetTouches

      保存了元素上所有手指的列表

      changedTouches

      包含了剛剛與屏幕接觸的手指或者剛剛離開(kāi)屏幕的手指

      TouchEvent {isTrusted: true, touches: TouchList, targetTouches: TouchList, changedTouches: TouchList}

      zepto中touch事件的XY

      client: 可視區(qū)域

      page: 內(nèi)容

      var oDiv = document.querySelector("div");     /*     1.注意點(diǎn):     無(wú)論是event對(duì)象中的touches/targetTouches/changedTouches都是一個(gè)偽數(shù)組     所以我們想要獲取手指位置的時(shí)候, 需要從偽數(shù)組中取出需要獲取的那個(gè)手指對(duì)象      */     oDiv.addEventListener("touchstart", function (event) {         // 獲取手指距離屏幕左上角的位置         // console.log(event.targetTouches[0].screenX);         // console.log(event.targetTouches[0].screenY);         // 獲取相對(duì)于當(dāng)前視口的距離         console.log("clientX", event.targetTouches[0].clientX);         console.log("clientY", event.targetTouches[0].clientY);         /*         clientX 10         clientY 8         pageX 1156         pageY 8          */         // 獲取相對(duì)于當(dāng)前頁(yè)面內(nèi)容的距離         console.log("pageX", event.targetTouches[0].pageX);         console.log("pageY", event.targetTouches[0].pageY);     });

      簡(jiǎn)單案例: 物塊拖拽

      <!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>08-touch事件練習(xí)</title>     <style>         *{             margin: 0;             padding: 0;         }         div{             width: 100px;             height: 100px;             background: red;         }     </style> </head> <body> <div></div> <script>     var oDiv = document.querySelector("div");     var startX, startY, moveX, moveY;     // 1.監(jiān)聽(tīng)手指按下事件     oDiv.addEventListener("touchstart", function (event) {         // 記錄手指按下的位置         startX = event.targetTouches[0].clientX;         startY = event.targetTouches[0].clientY;     });     // 2.監(jiān)聽(tīng)手指一動(dòng)事件     oDiv.addEventListener("touchmove", function (event) {         // 記錄手指移動(dòng)之后的位置         moveX = event.targetTouches[0].clientX;         moveY = event.targetTouches[0].clientY;         // 計(jì)算兩個(gè)位置之間相差的距離, 相差的距離就是需要移動(dòng)的距離         var offsetX = moveX - startX;         var offsetY = moveY- startY;         // 讓div移動(dòng)起來(lái)         oDiv.style.transform = "translate("+offsetX+"px,"+offsetY+"px)";     }); </script> </body> </html>

      zepto中touch事件的點(diǎn)透問(wèn)題

      如果兩個(gè)元素是重疊的(一個(gè)在另一個(gè)上面), 并且上面一個(gè)監(jiān)聽(tīng)了touchstart事件, 下面一個(gè)監(jiān)聽(tīng)了click事件,那么如果上面一個(gè)元素觸發(fā)touchstart事件之后消失了, 那么就會(huì)出現(xiàn)點(diǎn)透問(wèn)題

      解決方案: fastclick框架

      注: 框架必須在前面調(diào)用, 并且所有的元素都被注冊(cè)了fastclick中的事件, 以后所有的click事件都是fastclick的click事件

      zepto中的swipe事件

      手指在元素上滑動(dòng)觸發(fā)的事件

      $("div").swipeLeft(function () {         // console.log("左滑動(dòng)");         $(this).animate({left: "0px"}, 1000);     });     $("div").swipeRight(function () {         // console.log("右滑動(dòng)");         $(this).animate({left: "100px"}, 1000);     });     $("div").swipeUp(function () {         // console.log("上滑動(dòng)");         $(this).animate({top: "0px"}, 1000);     });     $("div").swipeDown(function () {         // console.log("下滑動(dòng)");         $(this).animate({top: "100px"}, 1000);

      移動(dòng)端hover事件

      移動(dòng)端只能使用mouseenter和mouseleave來(lái)監(jiān)聽(tīng)移入和移出

      iscroll框架

      當(dāng)我們做移動(dòng)端側(cè)邊欄的時(shí)候, 自己實(shí)現(xiàn)可能會(huì)出現(xiàn)bug也可能比較麻煩,這時(shí)候可以用iscroll框架

      github地址: https://github.com/cubiq/iscroll

      實(shí)現(xiàn)步驟

      按照框架的需要搭建一個(gè)三層的結(jié)構(gòu)

      引入iscroll.js框架

      創(chuàng)建一個(gè)IScroll對(duì)象, 把需要滾動(dòng)的容器給它

      var myScroll = new IScroll('.test', {         mouseWheel: true, // 開(kāi)啟鼠標(biāo)滾動(dòng)滾動(dòng)         scrollbars: true // 開(kāi)啟滾動(dòng)條, 但是容器必須是定位的, 否則滾動(dòng)條的位置不對(duì)     });     // 相關(guān)常用的回調(diào)函數(shù)     myScroll.on("beforeScrollStart", function () {         console.log("手指觸摸, 還沒(méi)有開(kāi)始滾動(dòng)");     });     myScroll.on("scrollStart", function () {         console.log("開(kāi)始滾動(dòng)");     });     myScroll.on("scrollEnd", function () {         console.log("結(jié)束滾動(dòng)");     });

      swiper框架

      Swiper是純javascript打造的滑動(dòng)特效插件,面向手機(jī)、平板電腦等移動(dòng)終端。

      Swiper能實(shí)現(xiàn)觸屏焦點(diǎn)圖、觸屏Tab切換、觸屏多圖切換等常用效果。

      Swiper開(kāi)源、免費(fèi)、穩(wěn)定、使用簡(jiǎn)單、功能強(qiáng)大,是架構(gòu)移動(dòng)終端網(wǎng)站的重要選擇!

      如何使用:

      引入對(duì)應(yīng)的css和js文件

      按照框架的需求搭建三層結(jié)構(gòu)

      創(chuàng)建一個(gè)Swiper對(duì)象, 將容器元素傳遞給它,第二個(gè)參數(shù)接收一個(gè)對(duì)象

      <div>     <ul>         <li>slider1</li>         <li>slider2</li>         <li>slider3</li>     </ul> </div> <script>     var mySwiper = new Swiper('.test',{         loop: true,         autoplay: true,         // 如果需要分頁(yè)器         pagination: {             el: '.swiper-pagination',         },         // 如果需要前進(jìn)后退按鈕         navigation: {             nextEl: '.swiper-button-next',             prevEl: '.swiper-button-prev',         },         // 如果需要滾動(dòng)條         scrollbar: {             el: '.swiper-scrollbar',         },); </script>

      推薦教程:《JS教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)