簡體   English   中英

IE8中的ScrollTop返回0

[英]ScrollTop in IE8 returning 0

今天早上我一直在尋找一個問題的答案,在IE8中獲取窗口的位置,在IE8中創建一個具有淡入功能的返回頂部按鈕。

在IE8中沒有工作並返回零的事情:

window.pageYOffset 

$(window).scrollTop()

$(document).scrollTop()

$(this).scrollTop()

這是我修復之前的代碼,它只適用於IE9 +和FF&Chrome

var offset = 220;
var duration = 500;
jQuery(window).scroll(function() {
    if (jQuery(this).scrollTop() > offset) {
        jQuery('.back-to-top').fadeIn(duration);
    } else {
        jQuery('.back-to-top').fadeOut(duration);
    }
});

jQuery('.back-to-top').click(function(event) {
    event.preventDefault();
    jQuery('html, body').animate({scrollTop: 0}, duration);
    return false;
})

而CSS:

.back-to-top {
    position: fixed;
    bottom: 2em;
    right: 0px;
    text-decoration: none;
    color: #000000;
    background-color: #ebebeb;
    font-size: 12px;
    padding: 1em;
    display: none;
  }

.back-to-top:hover {  
  background-color: rgba(135, 135, 135, 0.50);
}

這里的代碼的JSFiddle不起作用: http//jsfiddle.net/VWOU/uG5mH/1/

我找到的修復程序位於http://forums.asp.net/t/1618316.aspx

它將我的代碼轉換為此(也清理了一點)

var offset = 220;
var duration = 500;
$(window).scroll(function() {
    if (document.documentElement.scrollTop || jQuery(this).scrollTop() > offset) {
        $('.back-to-top').fadeIn(duration);
    } else {
        $('.back-to-top').fadeOut(duration);
    }
});

$('.back-to-top').click(function(event) {
    event.preventDefault();
    $('html, body').animate({scrollTop: 0}, duration);
    return false;
})

這是一個有效的JSFiddle: http//jsfiddle.net/VWOU/uG5mH/3/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM