原生js移動端touch事件實現上拉載入更多

來源:互聯網
上載者:User

標籤:

大家都知道jQuery裡沒有touch事件,所以在移動端使用原生js實現上拉載入效果還是很不錯的,閑話不多說,代碼如下:

 1 //擷取要操作的元素 2 var objSection = document.getElementsByTagName("div")[0]; 3 //給元素繫結監聽事件  個人習慣把監聽事件寫在一塊 4 objSection.addEventListener("touchstart", touchStart, false); 5 objSection.addEventListener("touchmove", touchMove, false); 6 objSection.addEventListener("touchend", touchEnd, false); 7  8 //touchStart 觸發事件時要執行的方法 9 function touchStart(event) {10     event.preventDefault();11     this.startY = event.changedTouches[0].pageY;12 }13 14 //touchMove 觸發事件的過程執行的方法15 function touchMove(event) {16     var change = event.changedTouches[0].pageY - this.startY;17     this.change = change;18     this.parentNode.style["-webkit-transform"] = "translate(0," + this.change + "px)";19     this.parentNode.style["transform"] = "translate(0," + this.change + "px)";20     this.parentNode.style["-webkit-transition"] = "all " + 0 + "s";21     this.parentNode.style["transition"] = "all " + 0 + "s";22 }23 24 //touchEnd 事件結束執行的方法25 function touchEnd(event) {26     if (this.change < 0) {27         this.parentNode.style["-webkit-transform"] = "translate(0," + this.change + "px)";28         this.parentNode.style["transform"] = "translate(0," + this.change + "px)";29         this.parentNode.style["-webkit-transition"] = "all " + 1 + "s";30         this.parentNode.style["transition"] = "all " + 1 + "s";31         appendData(this);32     } else {33         this.parentNode.style["-webkit-transform"] = "translate(0," + 0 + "px)";34         this.parentNode.style["transform"] = "translate(0," + 0 + "px)";35         this.parentNode.style["-webkit-transition"] = "all " + 0.5 + "s";36         this.parentNode.style["transition"] = "all " + 0.5 + "s";37     }38 }
上拉載入更多需要注意的地方:在觸發上拉這個動作時記錄下當前頁的pageY,在動作結束時記錄下在頁面中的pageY,結束時的pageY-開始時的pageY得到變化的pageY,在做css3動畫時需要用到變化的pageY,touchEnd裡面的appendData方法為ajax請求資料的方法,在這裡不在贅述
簡單的實現了準系統,需要的話可以在這個基礎上實現更多功能
歡迎大家批評指正~~

原生js移動端touch事件實現上拉載入更多

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.