为什么赢了';当我使用这个javascript函数时,滚动条不会上升吗?
我有一个javascript:为什么赢了';当我使用这个javascript函数时,滚动条不会上升吗?,javascript,jquery,html,dom,window,Javascript,Jquery,Html,Dom,Window,我有一个javascript: $(window).scroll(function () { if ($(window).scrollTop() > 0 && !document.contains(document.getElementById('toTop'))) { var top = '<div id="toTop" onclick="tTop()"></div>'; $('body').append(t
$(window).scroll(function () {
if ($(window).scrollTop() > 0 && !document.contains(document.getElementById('toTop'))) {
var top = '<div id="toTop" onclick="tTop()"></div>';
$('body').append(top);
}
});
function tTop() {
$('html,body').scrollTop(0);
}
$(window).scroll(function () {
if (document.contains(document.getElementById('toTop')) && $(window).scrollTop() == 0) {
$('div').remove('#toTop');
}
});
$(窗口)。滚动(函数(){
if($(window.scrollTop()>0&&!document.contains(document.getElementById('toTop')){
var-top='';
$('body')。追加(顶部);
}
});
函数tTop(){
$('html,body')。滚动顶部(0);
}
$(窗口)。滚动(函数(){
if(document.contains(document.getElementById('toTop'))&&&$(window.scrollTop()==0){
$('div')。删除('toTop');
}
});
如果在滚动条位于顶部时加载页面,则工作正常;但是,当我在滚动条位于底部时刷新页面时,页面仍将向上滚动,但滚动仍保持在底部。谁能告诉我怎么解决这个问题吗
当我在滚动条位于底部时刷新页面时
页面仍将向上滚动,但滚动保持在底部
也许我看错了,但你是否担心按钮会停留在页面底部?或$(窗口)。页面刷新后,单击按钮后scrollTop()
是否设置为0
无论如何,我会将scroll回调分离到另一个方法,检查元素是否存在(我在示例中使用了按钮而不是div)
你意识到每次你滚动时,
top
都会被添加到你的页面上……是的,我在问这个问题几秒钟后就修复了这个问题,哈哈哈,我现在就更新代码。你最终成功了吗?我不确定你的下半部分答案是什么,但这听起来更像是我在寻找的答案。然而,我没有问题删除按钮,我只是想更新代码无论如何,我一定会尝试这个后半部分。谢谢。第一个代码块添加了一个检查,以查看网页上是否存在该按钮。它还使用相同的函数/绑定将其删除。我注意到您正在绑定$(窗口)。滚动(
两次,这可能是问题的一部分。第二个/最后一个代码块在页面加载后运行该功能一次,检查滚动位置,如果需要执行任何操作(添加或删除按钮),然后将滚动事件绑定到回拨(你已经这么做了)。好吧,我现在可以添加和删除按钮了,但只是滚动条不会随着页面一起上升,只有当我用底部的滚动条刷新页面时才会出现这种情况。我可以在IE(10)/Chrome(28)/Firefox(22)中使用我的代码。你所问的代码在Chrome/Firefox中工作(也在刷新之后),但在IE中根本不起作用(document.contains不起作用)。您的javascript是否在文档就绪函数中(例如:$(function(){
)?它不在文档就绪函数中,您认为可以修复它吗?
function scrollCallback() {
if ($(window).scrollTop() > 0) {
if ($('body').has('#toTop').length == false) {
var top = '<input type="button" id="toTop" onclick="tTop();" value="top" />';
$('body').append(top);
}
}
else {
// Removes the button if the scroll is at the top of the page.
$('body #toTop').remove();
}
}
$(function() {
// Execute it when you load the page.
scrollCallback();
$(window).scroll(scrollCallback);
});