js仿手機(jī)頁面文件下拉刷新效果
最后弄出了一個(gè)簡單的下拉刷新頁面的形式,還不算太復(fù)雜
要在仿真器下才能看到效果,比如chrome的里邊(或者用手機(jī)瀏覽器查看,但測(cè)試發(fā)現(xiàn)有些瀏覽器有問題,目前手機(jī)獵豹是沒問題的)
主要就是:
下拉-->提示松開刷新-->松開后-->開始刷新-->刷新成功后還原
html,css部分
style type="text/css"> #slideDown{margin-top: 0;width: 100%;} #slideDown1,#slideDown2{width: 100%;height: 70px;;background: #e9f4f7;display: none;} #slideDown1{height: 20px;} #slideDown1>p,#slideDown2>p{margin: 20px auto;text-align:center;font-size: 14px;color: #37bbf5;} </style> <div id="content"> <div id="slideDown"> <div id="slideDown1"> <p>松開刷新</p> </div> <div id="slideDown2"> <p>正在刷新 ...</p> </div> </div> <div class="myContent"> <ul> <li>item1 -- item1 -- item1</li> <li>item2 -- item2 -- item2</li> <li>item3 -- item3 -- item3</li> <li>item4 -- item4 -- item4</li> <li>item5 -- item5 -- item5</li> <li>item6 -- item6 -- item6</li> <li>item7 -- item7 -- item7</li> </ul> </div> </div>
js部分:
主要就是為一個(gè)節(jié)點(diǎn)綁定事件,可以是整個(gè)body,按照實(shí)際來看
k_touch()函數(shù)是主要代碼,目前主要涉及三個(gè)事件,touchstart touchmove touchend
這里獲取touch點(diǎn)坐標(biāo)是用pageX,pageY 當(dāng)然不兼容的話先不考慮
因?yàn)槭窍禄潘⑿拢陨晕⒖刂埔幌聎ay,其實(shí)也就是通過這個(gè)控制是獲取pageX 還是pageY
滑一滑可以直接看到dist的變化,其實(shí)就把它看做px了吧
更多的功能,以后再說吧..
<script type="text/javascript"> //第一步:下拉過程 function slideDownStep1(dist){ // dist 下滑的距離,用以拉長背景模擬拉伸效果 var slideDown1 = document.getElementById("slideDown1"), slideDown2 = document.getElementById("slideDown2"); slideDown2.style.display = "none"; slideDown1.style.display = "block"; slideDown1.style.height = (parseInt("20px") - dist) + "px"; } //第二步:下拉,然后松開, function slideDownStep2(){ var slideDown1 = document.getElementById("slideDown1"), slideDown2 = document.getElementById("slideDown2"); slideDown1.style.display = "none"; slideDown1.style.height = "20px"; slideDown2.style.display = "block"; //刷新數(shù)據(jù) //location.reload(); } //第三步:刷新完成,回歸之前狀態(tài) function slideDownStep3(){ var slideDown1 = document.getElementById("slideDown1"), slideDown2 = document.getElementById("slideDown2"); slideDown1.style.display = "none"; slideDown2.style.display = "none"; } //下滑刷新調(diào)用 k_touch("content","y"); //contentId表示對(duì)其進(jìn)行事件綁定,way==>x表示水平方向的操作,y表示豎直方向的操作 function k_touch(contentId,way){ var _start = 0, _end = 0, _content = document.getElementById(contentId); _content.addEventListener("touchstart",touchStart,false); _content.addEventListener("touchmove",touchMove,false); _content.addEventListener("touchend",touchEnd,false); function touchStart(event){ //var touch = event.touches[0]; //這種獲取也可以,但已不推薦使用 var touch = event.targetTouches[0]; if(way == "x"){ _start = touch.pageX; }else{ _start = touch.pageY; } } function touchMove(event){ var touch = event.targetTouches[0]; if(way == "x"){ _end = (_start - touch.pageX); }else{ _end = (_start - touch.pageY); //下滑才執(zhí)行操作 if(_end < 0){ slideDownStep1(_end); } } } function touchEnd(event){ if(_end >0){ console.log("左滑或上滑 "+_end); }else{ console.log("右滑或下滑"+_end); slideDownStep2(); //刷新成功則 //模擬刷新成功進(jìn)入第三步 setTimeout(function(){ slideDownStep3(); },2500); } } } </script>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 基于iscroll.js實(shí)現(xiàn)下拉刷新和上拉加載效果
- 純javascript實(shí)現(xiàn)簡單下拉刷新功能
- vue.js移動(dòng)端app之上拉加載以及下拉刷新實(shí)戰(zhàn)
- vue.js整合vux中的上拉加載下拉刷新實(shí)例教程
- Javascript下拉刷新的簡單實(shí)現(xiàn)
- JS 插件dropload下拉刷新、上拉加載使用小結(jié)
- iscroll.js的上拉下拉刷新時(shí)無法回彈的解決方法
- dropload.js插件下拉刷新和上拉加載使用詳解
- JS+CSS實(shí)現(xiàn)下拉刷新/上拉加載插件
- 原生js仿寫手機(jī)端下拉刷新
相關(guān)文章
JS實(shí)現(xiàn)帶緩沖效果打開、關(guān)閉、移動(dòng)一個(gè)層的方法
這篇文章主要介紹了JS實(shí)現(xiàn)帶緩沖效果打開、關(guān)閉、移動(dòng)一個(gè)層的方法,涉及javascript鼠標(biāo)事件及頁面元素操作技巧,需要的朋友可以參考下2015-05-05JS實(shí)現(xiàn)點(diǎn)擊發(fā)送驗(yàn)證碼 xx秒后重新發(fā)送功能
在一些注冊(cè)類的網(wǎng)站,經(jīng)常遇到這樣的需求,點(diǎn)擊發(fā)送驗(yàn)證碼,xx秒后重新發(fā)送,這樣的功能怎么實(shí)現(xiàn)呢,接下來通過本文給大家分享js點(diǎn)擊發(fā)送驗(yàn)證碼 xx秒后重新發(fā)送功能,需要的朋友參考下吧2019-07-07javascript實(shí)現(xiàn)根據(jù)漢字獲取簡拼
這里給大家分享一個(gè)JavaScript實(shí)現(xiàn)的根據(jù)漢字可以自動(dòng)轉(zhuǎn)換簡拼代碼,有需要的朋友可以參考一下,并非本人原創(chuàng)來自網(wǎng)絡(luò)。2016-09-09借助云開發(fā)實(shí)現(xiàn)小程序短信驗(yàn)證碼的發(fā)送
這篇文章主要介紹了借助云開發(fā)實(shí)現(xiàn)小程序短信驗(yàn)證碼的發(fā)送,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01小程序中this.setData的使用和注意事項(xiàng)
這篇文章主要介紹了微信小程序中this.setData的使用和注意事項(xiàng),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08基于JavaScript判斷兩個(gè)對(duì)象內(nèi)容是否相等
這篇文章主要介紹了基于JavaScript判斷兩個(gè)對(duì)象內(nèi)容是否相等,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01JS Map 和 List 的簡單實(shí)現(xiàn)代碼
本篇文章是對(duì)在JS中Map和List的簡單實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07