$(window).scroll()沒法觸發問題

  在微信端開發中遇到一個這種問題:明明用的公共文件(代碼以下圖),其餘頁面每次都能觸發這個滾動條$(window).scroll事件,以顯示右下角「回到頂部」這個按鈕圖標html

可是,問題來了,最該須要使用「回到頂部」功能的列表頁面時候,竟然不顯示這個圖標了!!!(當時我就想一句mmp不知道送給誰)。瀏覽器

 

  我查看了html加載狀況,嘿,加載是加載了,按要求加載的哦,一點都不缺斤少兩(以下圖),明晃晃的display:none送給你~微信

靜態頁的也是這個樣子哦,滑動了滾動條才顯示可愛的向上圖標哦~函數

 

 

  加載完數據死活不觸發滾動事件(微笑^V^)spa

  忘記說了,我用的是$.each去循環列表,列表沒問題,不顯示一個小小的圖標而已(努力微笑~^V^~)htm

 

  原本嘛,小功能,不影響大局,回頭直接直愣愣顯示($(「#toTop」).show())不隱藏就好了。blog

  可是吧……我以爲仍是須要再搶救一下,你看吧,其餘頁面都是滾動條離開頂部時候才顯示圖標的,就列表頁面不懂事,如此不一致的畫風,列表頁也是會自卑的好嗎?(不生氣^U^)事件

  上網查,各類各樣的可能性(寫錯代碼,初始化高度不夠循環,body包不住等等),一一試着改了:初始化高度不夠這個比較有意思,因此我就找這個方向改的。開發

如下是反面案例io

 

  同事建議我添加body的高度和HTML的高度樣式(height:100%)嘿!成了,圖標顯示了呢!

  並非……

  人家圖標收不回去了呢,就是不觸發滾動事件,就是這麼傲嬌(有點生氣,可是仍是要保持微笑^o^)。

 

  又一想,等列表加載完再去觸發這個方法是否是可行?因而我把$(window).scroll()事件複製到加載列表的函數裏面,循環完列表了就立刻加載滾動條方法!

  藍鵝……

  不顯示,就是不顯示!(微笑……笑不出來)

 

  放在$(function(){ 滾動事件 })……不行哦

 

成功案例

  我想着,反正都不行了,就試一下document .scroll() (注意,這種寫法是會報錯的),竟然顯示了,而且和我想要的效果一毛同樣!!!

報錯的竟然還能行!!!

  情何以堪?

  順着這條線,我把公共文件裏的代碼改了:把$(window).scroll()改爲document.scroll()

  全面報錯,手動再見。

  我也知道這樣寫不對啊,因而改公共方法:改爲$(document).scroll()

  不報錯,全部頁面都不顯示向上按鈕了。再見,以死謝罪……

  這樣吧,公共方法咱不改,用着$(window).scroll(),在列表加載完成後再放一個$(document).scroll(),反正列表頁不觸發$(window).scroll(),應該問題不大。

  竟然成功了……

論:$(window).scroll()與$(document).scroll()的區別

  說好的區別不大而且$(window).scroll()兼容各大瀏覽器呢?

我讀書少,是被誰騙了麼!!!!!

相關文章
相關標籤/搜索