Javascript 将滚动至顶部按钮保持在相同高度?

Javascript 将滚动至顶部按钮保持在相同高度?,javascript,jquery,html,css,scroll,Javascript,Jquery,Html,Css,Scroll,我的按钮有问题。我想要的是,当窗户的大小在高度上发生变化时,如何才能强制按钮保持在相同的高度?我不希望它跟随或被按下,因为高度改变 HTML <a href="#" class="scrollToTop hidden-phone"> <span class="icon icon-arrow-up-white"></span> </a> <div class="myDiv"> <div class="myConte

我的按钮有问题。我想要的是,当窗户的大小在高度上发生变化时,如何才能强制按钮保持在相同的高度?我不希望它跟随或被按下,因为高度改变

HTML

<a href="#" class="scrollToTop hidden-phone">
    <span class="icon icon-arrow-up-white"></span>
</a>
<div class="myDiv">
    <div class="myContent">
        a lot of text
    </div>
</div>
JavaScript

$(document).scroll(function(e) { // This is scrollToTop button
    e.preventDefault();
    if ($(this).scrollTop() > 100) {
        $('.scrollToTop').fadeIn(); 
    } else {
        $('.scrollToTop').fadeOut(); 
    }
});
$('.scrollToTop').click(function () { // Scroll to top with ease
    $('html, body').animate({ scrollTop: 0 }, 1000, 'easeOutExpo');
    return false;
});

如果我理解正确的话,你的问题实际上是关于CSS的。尝试改变
top:35.5%到静态量,例如
top:100px

如果希望像素量基于视口高度,可以使用

$(window).height();
因此,要始终将按钮显示在距顶部N%的位置,并在视口调整大小时将其保持在该位置,可以执行以下操作:

function positionButton() {
    var percFromTop = 35,
        newHeight = $(window).height() / 100 * percFromTop;
    $(".scrollToTop").css("top", newHeight+"px");
}

$(document).ready(function() {
    positionButton();
};

请看这里:如果我理解正确,您的问题实际上是关于CSS的。尝试改变
top:35.5%到静态量,例如
top:100px

如果希望像素量基于视口高度,可以使用

$(window).height();
因此,要始终将按钮显示在距顶部N%的位置,并在视口调整大小时将其保持在该位置,可以执行以下操作:

function positionButton() {
    var percFromTop = 35,
        newHeight = $(window).height() / 100 * percFromTop;
    $(".scrollToTop").css("top", newHeight+"px");
}

$(document).ready(function() {
    positionButton();
};

在这里可以看到它:

现在按钮保持在原来的位置(由于
位置:固定;
)。这难道不是期望的行为吗?你的意思是当页面高度增加时,按钮会向页面上方移动吗??如果是这样,那是因为你有这样的:
a.scrollToTop{top:35.5%;}
是的,但是我希望滚动保持在原来的位置,即使我有一个固定的位置。。。正在尝试在一些jQuery(如按高度调整大小)中解决此问题。。。有人能帮我吗?@wf4是的,我理解,但是如果高度降低或增加,按钮是否可以保持在相同的位置?“立即调整大小”按钮保持在同一位置(由于
位置:固定;
)。这难道不是期望的行为吗?你的意思是当页面高度增加时,按钮会向页面上方移动吗??如果是这样,那是因为你有这样的:
a.scrollToTop{top:35.5%;}
是的,但是我希望滚动保持在原来的位置,即使我有一个固定的位置。。。正在尝试在一些jQuery(如按高度调整大小)中解决此问题。。。有人能帮我吗?@wf4是的,我理解,但是如果高度降低或增加,按钮是否可以保持在相同的位置?关于调整大小?我认为OP正在寻找一种方法来动态设置与顶部的距离,以便给人一种固定的印象。如果调整窗口的大小,此答案将使按钮向上移动。@wf4 OP字保持在与往常相同的位置,保持在相同的高度。看来答案是正确的,不是吗?@wf4完全正确,我想让按钮给我动态的,是的!添加像素而不是百分比并不能解决我的问题。@wf4我没有测试它,因为它感觉像一个微不足道的函数,但显然我应该这样做。有几个打字错误,还有一个大脑的小毛病:据我所知,按钮不应该在调整大小时重新定位,因为这样的功能与纯CSS完全相同。假设我正确理解了需求,只需在加载时将其定位一次就可以提供所需的功能。@rsvmrkfiddle添加了!我认为OP正在寻找一种方法来动态设置与顶部的距离,以便给人一种固定的印象。如果调整窗口的大小,此答案将使按钮向上移动。@wf4 OP字保持在与往常相同的位置,保持在相同的高度。看来答案是正确的,不是吗?@wf4完全正确,我想让按钮给我动态的,是的!添加像素而不是百分比并不能解决我的问题。@wf4我没有测试它,因为它感觉像一个微不足道的函数,但显然我应该这样做。有几个打字错误,还有一个大脑的小毛病:据我所知,按钮不应该在调整大小时重新定位,因为这样的功能与纯CSS完全相同。假设我正确理解了需求,只需在加载时将其定位一次就可以提供所需的功能。@rsvmrkfiddle添加了!