body的滾動事件的坑

2021-07-31 06:36:28 字數 833 閱讀 8105

踩過些坑,得到的結論,不一定精確

1、

body的滾動條,重新整理頁面的時候不會回到頂部。其他dom節點會

2、

body只能通過onscroll函式表示式的方法來繫結滾動事件

(其中,ie不能監聽body的滾動事件)

document.queryselector('body').onscroll = function

() ;

以下2種方式,均以失敗告終

document.queryselector('body').addeventlistener('onscroll', function

() );

$('body').on('scroll', function

() )

3、

即時通過上述方法勉強為body繫結上了滾動事件,

那你要做好準備了,很有可能這個函式會莫名其妙的死掉(就是說,你滾動了滑鼠,但並沒有如你預期的去執行onscroll函式)

當你拿著滑鼠瘋狂的滾動的時候,它一定會死掉;

或者你把這個頁面放那,過了一會兒你又去調戲它,onscroll函式也很有可能不執行;

就是這麼矯情,你能把它咋滴

注:貌似只有edge不會死掉

4、說了這麼多,解決方案呢?不要用body做滾動事件

最好用其他容器來做滾動事件的操作吧,如果非要用body?試試用document代替

view的點選事件遇到的坑

檢視view的setonclicklistener nullable onclicklistener l 原始碼 public voidsetonclicklistener nullable onclicklistener l getlistenerinfo monclicklistener l 可...

關於前端click事件的坑

對於click事件的繫結,一直是繫結下就可以了,但是在用jquery fileupload外掛程式做檔案上傳的時候,每選擇一次檔案就會觸發add屬性對應的函式,導致多次繫結了click時間,一直多次呼叫後台上傳檔案,怎麼查都找不到原因,最後才發現多次繫結click事件後,全部都會執行,而不是只執行最...

delphi中的DBGRid滑鼠滾動事件

procedure onmousewheel var msg tmsg var handled boolean begin if msg.message wm mousewheel then begin if msg.wparam 0 then begin if dbgrid.focused the...