国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 在移動(dòng)設(shè)備上快速滾動(dòng)屏幕然后點(diǎn)擊使?jié)L動(dòng)停止,如何盡量避免在點(diǎn)擊時(shí)誤觸<a>標(biāo)簽,跳轉(zhuǎn)到其他頁?

瀏覽:100日期:2022-12-05 10:32:38

問題描述

1 問題:在移動(dòng)設(shè)備上快速滾動(dòng)屏幕然后點(diǎn)擊使?jié)L動(dòng)停止,如何盡量避免在點(diǎn)擊時(shí)誤觸a標(biāo)簽,跳轉(zhuǎn)到其他頁?

2 這也是在移動(dòng)端的前端開發(fā)中實(shí)際遇到的一個(gè)問題,詳細(xì)說來就是在正常情況下,當(dāng)我們的當(dāng)前頁面內(nèi)容較多,高度上較高,出現(xiàn)滾動(dòng)條的時(shí)候,當(dāng)我們用手滑動(dòng)屏幕,屏幕上頁面內(nèi)容會(huì)快速滾動(dòng),不會(huì)因?yàn)槭忠呀?jīng)離開了屏幕而滾動(dòng)停止。這個(gè)時(shí)候,當(dāng)我們想要停止?jié)L動(dòng)的時(shí)候,我們也輕輕點(diǎn)擊屏幕,讓屏幕停止。但是這個(gè)時(shí)候有個(gè)問題,如果屏幕上點(diǎn)擊的位置,正好有一個(gè)a標(biāo)簽,或者有一個(gè)button,這個(gè)時(shí)候就很容易進(jìn)入下一個(gè)路由。查看了mdn上的關(guān)于scroll事件的一些說明,并沒有對(duì)scroll過程中的速度和停止的反應(yīng)時(shí)間這方面的說明。

我的思路是先判斷滾動(dòng)事件是否已經(jīng)停止,當(dāng)停止之后,再給一定時(shí)間的延時(shí),之后的點(diǎn)擊才有效。這樣的話,當(dāng)快速滾動(dòng)之后,第一次點(diǎn)擊屏幕,讓屏幕滾動(dòng)停止,第二次點(diǎn)擊屏幕,如果是點(diǎn)擊了一個(gè)a標(biāo)簽才能跳轉(zhuǎn)到其他路由。應(yīng)該如何實(shí)現(xiàn)呢。

問題解答

回答1:

你們產(chǎn)品要求這么苛刻嗎,我感覺這不應(yīng)該成為問題,應(yīng)該遵循這樣的物理邏輯,我是沒見過哪個(gè)產(chǎn)品規(guī)避了這個(gè)邏輯。如果非要解決,你的思路是可行的,那樣的話,你需要代理所有鏈接或有點(diǎn)擊行為的元素,個(gè)人認(rèn)為是一種得不償失的做法。

回答2:

設(shè)一個(gè)狀態(tài)值就可以,就比如說,你滾動(dòng)的時(shí)候狀態(tài)值isScrolling = true;當(dāng)滾動(dòng)完成或者被點(diǎn)擊停止時(shí)設(shè)置isScrolling = false. 事件觸發(fā)只能在isScrolling= false時(shí)有效。

回答3:

我也處理過相同的問題

區(qū)分點(diǎn)擊事件,點(diǎn)擊事件用touch替換

計(jì)算點(diǎn)擊的時(shí)長和判斷的距離,兩個(gè)參數(shù),判斷是不是觸發(fā)點(diǎn)擊事件

如果還不清楚的話 我晚點(diǎn)給你一下demo

$(’#allItems’).delegate(’.js-snifferFullNet’,’click touchend’,function(e) { console.log(’touchend test2 數(shù)據(jù)是:’+(document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop)); var endTime = new Date().getTime() - startTime; console.log(endTime); if(e.type==’touchend’ &&((10<endTime)|| (Math.abs(touch_pos-(document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop))>3))) return; else{console.log(this);var type = e.currentTarget.childNodes[2].innerText;regClickBtn.snifferAllNetBtn(type); }});

標(biāo)簽: JavaScript
主站蜘蛛池模板: 霍林郭勒市| 永城市| 奈曼旗| 荆门市| 米脂县| 建湖县| 谷城县| 河曲县| 新余市| 宜兰市| 许昌县| 湖口县| 嘉义市| 上蔡县| 荆州市| SHOW| 聂拉木县| 高碑店市| 和硕县| 丹阳市| 永泰县| 南安市| 凤台县| 揭东县| 城步| 梨树县| 阳东县| 泌阳县| 砚山县| 穆棱市| 曲靖市| 上栗县| 当涂县| 长宁区| 松江区| 汾阳市| 辽宁省| 唐山市| 如皋市| 五峰| 德保县|