2014年2月28日 星期五

解決 jQuery 的 animate scrollTop 方法在 Firefox 沒有作用的問題

最近發生在自己手邊上的案子,發生了這個問題,jQuery 的 scrollTop 是一個很常用的功能,常常我們會在某些 link 上面綁定 click 事件,觸發 scrollTop,然後畫面就會捲到適當的位置,而我發現在 Firefox 卻無法捲動,為什麼呢?

這是因為當 animate 的 scrollTop 方法,其他瀏覽器會作用在 body 元素上,而 FireFox 卻是作用在 html 元素之上,所以本來我的寫法是這樣:



$('element').click(function(e){
    $('body').animate({
            scrollTop:  $('element').offset().top},'slow');
});


因為 animate 只綁到 body,因此就會漏掉 Firefox 沒有作用到,只要加上綁定在 html 上就可以解決:


$('element').click(function(e){
    $('body, html').animate({
            scrollTop:  $('element').offset().top},'slow');
});



參考: Animate scrollTop not working in firefox


沒有留言:

張貼留言

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...