4

我正在尝试创建一个固定在屏幕左下方的按钮。我尝试在 JSFiddle 中进行设置以重新创建我正在尝试做的事情。

这是我的 HTML:

<div id="header">header
</div>
<div id="button">button
</div>
<div id="content">some content
</div>
<div id="footer">footer
</div>

和CSS:

#header,#footer{
background-color:red;



}
#content
{
    height:2000px;
}
#footer
{
    height:200px;
}
#button
{
    background-color:gray;
    width:100px;
    height:100px;
    position:fixed;
    bottom:0;
    left:0;
    right:0;    
}

我已经读过,我应该使用诸如 scrolltoFixed.js、lockfixed.js 之类的插件,但我的问题是我不知道如何使用,甚至不知道从哪里开始编辑 javascript。 这是一个小提琴

我希望按钮停止页脚所在的位置,并使其像停靠一样。

4

3 回答 3

7

现在更新,使其贴在页脚上方。

希望这就是你 的意思 jQuery:

$(window).scroll(function() {
   if($(window).scrollTop() + $(window).height() > $(document).height() - 200) {
       $('#button').addClass('fixed_button');
   }else{
       $('#button').removeClass('fixed_button');
   }
});

CSS:

.fixed_button{
    position:absolute !important;
    margin-top:1900px;
    bottom: auto !important;
}
于 2013-08-05T08:12:43.870 回答
0

请改用绝对定位。另外,不要使用 left:0 和 right:0。仅使用其中一种。尝试

position:absolute;
bottom:0;
left:0;

编辑:对不起,您的代码似乎有效。你到底想做什么?

于 2013-08-05T08:05:57.197 回答
0

我一直在寻找类似的东西,但在这里找不到任何合适的答案是我想出的。

var $fixed_element = $(".some_element")
if($fixed_element.length){
        var $offset = $(".footer").position().top,
            $wh = $(window).innerHeight(),
            $diff = $offset - $wh,
            $scrolled = $(window).scrollTop();
        $fixed_element.css("bottom", Math.max(0, $scrolled-$diff));
    }

所以现在固定元素将在页脚之前停止。并且不会与它重叠。

于 2017-03-21T03:09:04.693 回答