国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Scrollend:超實用的全新JavaScript事件

開發(fā) 前端
polyfill 將漸進(jìn)增強(qiáng)以使用瀏覽器內(nèi)置的 scrollend 事件(如果可用)。如果它不可用,腳本會監(jiān)視指針事件并滾動以對它可能結(jié)束的事件進(jìn)行最佳評估。

大家好,我是 CUGGZ。

在開發(fā)中,可能會遇到當(dāng)頁面滾動停止之后執(zhí)行某些操作的需求。在 scrollend? 事件之前,并沒有可靠的方法來檢測頁面滾動是否完成。這意味著事件會延遲觸發(fā),或者當(dāng)用戶的手指仍在屏幕上時觸發(fā)。這種不可靠性導(dǎo)致了錯誤和用戶體驗不佳。下面就來看看全新的 scrollend 事件是如何使用的!

概述

以前可能會使用定時器來檢測滾動停止:

document.onscroll = event {
clearTimeout(window.scrollEndTimer)
window.scrollEndTimer = setTimeout(callback, 100)
}

這個 setTimeout() 可以知道滾動是否停止了 100 毫秒。這使它更像是滾動已暫停事件,而不是滾動已結(jié)束事件。

有了 scrollend 事件,瀏覽器就會幫我們完成滾動停止的監(jiān)聽:

document.onscrollend = event {}

可以在 Codepen 查看示例:https://codepen.io/web-dot-dev/pen/rNrJRKg,當(dāng)滾動停止時會有提示。核心代碼如下:

document.onscrollend = event => {
Toast('scroll end')
}

圖片

使用

scrollend 事件會在以下情況被觸發(fā):

  • 用戶的觸摸已被釋放;
  • 用戶的指針已釋放滾動條;
  • 用戶的按鍵已被釋放;
  • 滾動到片段已完成;
  • 滾動捕捉已完成;
  • scrollTo()已完成;
  • 用戶已滾動視覺視口。

scrollend 事件在以下情況不會觸發(fā):

  • 用戶的手勢沒有導(dǎo)致任何滾動位置變化;
  • scrollTo() 沒有產(chǎn)生任何移動。

這個事件花了很長時間才出現(xiàn)在 Web 平臺上的一個原因就是有許多小細(xì)節(jié)需要進(jìn)行規(guī)范。最復(fù)雜的就是視覺視口與文檔的滾動結(jié)束細(xì)節(jié)。對于放大的網(wǎng)頁,在此縮放狀態(tài)下,可以四處滾動,但不一定是在滾動文檔。不過,即使是這個視覺視口用戶驅(qū)動的滾動交互也會在完成后發(fā)出 scrollend 事件。

與其他滾動事件一樣,可以通過多種方式注冊偵聽器:

addEventListener("scrollend", (event) => {
// scroll ended
});

aScrollingElement.addEventListener("scrollend", (event) => {
// scroll ended
});

也可以使用事件屬性:

document.onscrollend = (event) => {
// scroll ended
};

aScrollingElement.onscrollend = (event) => {
// scroll ended
};

瀏覽器支持

目前僅 Firefox 109 版本支持 scrollend 事件。不久的將來,Chrome 111 版本也將支持該事件。

圖片

如果現(xiàn)在想要使用這個事件,可以在開始時檢查支持情況,如果不支持該事件就繼續(xù)使用當(dāng)前的滾動結(jié)束策略(如果有的話):

if ('onscrollend' in window) {
document.onscrollend = callback
}
else {
document.onscroll = event {
clearTimeout(window.scrollEndTimer)
window.scrollEndTimer = setTimeout(callback, 100)
}
}

這樣就能在可用時漸進(jìn)增強(qiáng) scrollend 事件。當(dāng)然也可以使用 polyfill:https://github.com/argyleink/scrollyfills

首先需要在終端中安裝 npm 包:

npm i -D scrollyfills

然后在需要的地方使用 scrollend 事件:

import {scrollend} from 'scrollyfills';

someElementThatScrolls.addEventListener('scrollend', event => {
console.log('scroll has ended');
});

polyfill 將漸進(jìn)增強(qiáng)以使用瀏覽器內(nèi)置的 scrollend 事件(如果可用)。如果它不可用,腳本會監(jiān)視指針事件并滾動以對它可能結(jié)束的事件進(jìn)行最佳評估。

參考:https://developer.chrome.com/blog/scrollend-a-new-javascript-event/

責(zé)任編輯:武曉燕 來源: 前端充電寶
相關(guān)推薦

2021-03-04 22:15:36

JavaScript編程開發(fā)

2019-07-02 10:36:30

JavaScript硬件開發(fā)

2022-07-29 09:01:20

Chrome試源代碼調(diào)試技巧

2018-09-07 23:38:45

小程序開發(fā)框架

2022-01-17 10:50:15

Python代碼內(nèi)存

2025-08-01 08:26:45

2023-08-11 17:39:43

JavaScriptWeb 應(yīng)用程序

2024-08-21 14:55:02

2023-11-26 17:54:07

JavaScript開發(fā)

2020-08-27 13:45:24

Linux監(jiān)控工具命令

2019-05-21 15:28:00

Tomcat腳本權(quán)限

2019-08-16 09:22:38

技術(shù)調(diào)試互聯(lián)網(wǎng)

2020-09-28 12:39:44

代碼規(guī)范管理

2009-10-30 09:59:09

Hyper-V應(yīng)用技巧

2020-08-31 08:25:06

Python時間模塊開發(fā)

2011-01-21 07:22:48

jQuerywebJavaScript

2018-07-12 10:08:31

圖像超分辨率重建技術(shù)原理

2015-05-25 11:04:25

超實用開發(fā)框架

2021-03-12 10:01:33

Sudo命令Linux

2019-03-07 15:17:45

框架技術(shù)開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號

国产精品免费久久久久| 伊人久久噜噜噜躁狠狠躁| 女人天堂亚洲aⅴ在线观看| 白浆爆出在线观看| 日本精品一区二区| 伊人久久亚洲热| 番号在线播放| 韩国欧美一区二区| 日韩中文字幕视频在线| 9191国产视频| 日韩porn| 日韩精品91亚洲二区在线观看 | 亚洲无玛一区| 97精品国产| 国产激情视频一区| 99热这里只有精品首页 | 午夜视频在线观看免费视频| 亚洲一区在线观看视频| 午夜精彩视频| 亚洲成av人片一区二区梦乃| 国外亚洲成av人片在线观看| 亚洲男人天堂一区| 国产视频二区| 亚洲精品日日夜夜| 影音先锋导航| 午夜欧美大尺度福利影院在线看| 国产特级嫩嫩嫩bbb| 亚洲国产综合在线| 四虎精品在线| 欧美三级午夜理伦三级中视频| 黑人与亚洲人色ⅹvideos| 欧美性jizz18性欧美| 久久久久久久久亚洲精品| 91精品福利视频| 中文字幕免费高清电视剧网站在线观看| 91精品国产色综合久久不卡电影| 黄色成人影院| 亚洲欧美中文在线视频| aa亚洲一区一区三区| 1769国产精品| 99热国内精品| 日本精品免费| 91丨porny丨最新| 我看黄色一级片| 国产精品白丝在线| 中文资源在线网| 欧美日韩在线亚洲一区蜜芽| 久久av色综合| 久久精品视频网站| 欧美日韩国产传媒| 欧美少妇一区| 成人动漫一区二区在线| 美女张开让男人捅| 欧美日韩在线三级| www.久久| 亚洲free性xxxx护士白浆| 奇米综合一区二区三区精品视频| heyzo亚洲| 精品久久久久久| 女厕盗摄一区二区三区| 97视频在线播放| 亚洲国产精品一区| 国产99久久九九精品无码| 精品久久久久久久久久久久久久 | 日韩欧美中文第一页| heyzo在线欧美播放| 国内精品美女av在线播放| 欧美激情一区| www.99热这里只有精品| 色综合天天综合在线视频| 韩国美女久久| 国产精品视频最多的网站| 秋霞av亚洲一区二区三| 成人毛片高清视频观看| 欧美一区二区精品| 日韩精品导航| 特级西西444| 欧美性xxxx极品hd欧美风情| 美女久久久久久| 国产伦精品一区二区三区在线 | 亚洲成人影院在线观看| 亚洲欧洲美洲在线综合| 99精品综合| 成人av在线不卡| 午夜精品久久久久久久蜜桃app| 中文字幕在线官网| 国产免费一区二区三区在线能观看| 久久精品国产精品亚洲精品| 男人天堂v视频| 在线视频免费一区二区| 欧美a级一区| 日本999视频| 亚洲久久久久久久久久| 天天做天天爱综合| 日韩肉感妇bbwbbwbbw| 日韩精品极品毛片系列视频| 最新精品国产| 免费在线观看视频| 欧美大片免费观看| 国产精品一区二区在线观看网站| 婷婷成人激情| 国产日韩亚洲欧美| 欧美激情一区二区三区蜜桃视频| 爱啪啪综合导航| 福利精品视频| 亚洲国产中文字幕在线视频综合| 日日夜夜一区| aaa免费在线观看| 欧美日韩国产精品自在自线| 日韩理论在线| 老鸭窝av在线| 久久国产精品久久久久| 九色综合狠狠综合久久| a√资源在线| 91精品国产高清久久久久久91裸体| 亚洲欧洲精品一区二区三区不卡| 欧美高清你懂的| 国产又黄又爽免费视频| 欧美日韩成人激情| 91精品国产调教在线观看| 日本欧洲一区| 国产成人激情视频| 亚洲精品久久久蜜桃| 免费成人蒂法| 99热在线观看免费| 性欧美亚洲xxxx乳在线观看| 国产性色一区二区| av成人资源| 九色成人在线| 日韩av电影手机在线| 一区二区三区在线视频观看| 偷拍一区二区| 中文有码在线观看| 5g国产欧美日韩视频| 亚洲一区网站| 欧美激情第二页| 在线欧美激情| 国产二区三区四区| 久久精品人成| 91精品国产综合久久香蕉的特点| 日韩精品欧美成人高清一区二区| 国产一区二区三区朝在线观看| 国内精品国语自产拍在线观看| 国产性猛交xxxx免费看久久| 色又黄又爽网站www久久| 激情综合色丁香一区二区| 亚洲人成网站77777在线观看| 日韩av在线不卡| 国产精品我不卡| 国产精品18久久久久久麻辣| 欧美午夜精品理论片a级按摩| 久久久综合网| 欧美精品一区二区三区精品| 18+激情视频在线| 麻豆tv在线播放| av成人免费看| 99草草国产熟女视频在线| 欧洲精品亚洲精品| 全球成人中文在线| 亚洲精品aⅴ中文字幕乱码 | 91美女片黄在线观看| 自拍偷在线精品自拍偷无码专区| 一级精品视频在线观看宜春院 | caoporm超碰国产精品| 狠狠综合久久| av成人免费观看| 狼狼综合久久久久综合网| 精品一区二区三区免费毛片| 一区二区三区视频国产日韩| 不卡的av电影| 国内精品写真在线观看| 91视频国产观看| 国产高清精品久久久久| 国产+人+亚洲| 国产日韩中文字幕在线| 中文字幕第一页亚洲| 每日在线更新av| 欧美亚洲日本在线观看| 3d玉蒲团在线观看| 成人自拍在线| 99re亚洲国产精品| 亚洲高清久久网| 国产精品视频入口| 三年片观看免费观看大全视频下载| 91精品国产自产观看在线| 亚洲二区免费| 亚洲va欧美va人人爽| 久久久久国色av免费观看性色| 一本一道久久a久久精品综合 | 欧美高清视频一二三区| 亚洲片在线资源| 国产精品日韩久久久久| 偷拍视频一区二区| 国产精品99999| 国产麻豆一区二区三区精品视频| 麻豆精品国产91久久久久久| 色综合视频一区二区三区高清| 欧美亚洲日本网站| 天天天干夜夜夜操| 91成人精品在线|