[英]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.