将 div 浮动在右下角,但不在页脚内

2024-03-02

我正在尝试实现一个浮动在页面右下角的“转到顶部”按钮。我可以使用以下代码来完成此操作,但我不希望此按钮进入我的页面的页脚。当用户将页面向下滚动到页面底部时,如何阻止它进入页脚并停留在页脚顶部?

CSS

#to-top {
  position: fixed;
  bottom: 10px;
  right: 10px;
  width: 100px;
  padding: 5px;
  border: 1px solid #ccc;
  background: #f7f7f7;
  color: #333;
  text-align: center;
  cursor: pointer;
  display: none;
}

JavaScript

$(window).scroll(function() {
  if($(this).scrollTop() != 0) {
    $('#to-top').fadeIn(); 
  } else {
    $('#to-top').fadeOut();
  }
});

$('#to-top').click(function() {
  $('body,html').animate({scrollTop:0},"fast");
});

HTML

<div id="to-top">Back to Top</div>

EDIT Here is a drawing of how it should look like. The black vertical rectangle is a scroll bar. The "back to top" button should never enter the footer region. enter image description here

这里有一个jsfiddle http://jsfiddle.net/emWMa/1/.


结果发现解决方案比我想象的要复杂。这是我的解决方案。

它使用这个function https://stackoverflow.com/questions/5353934/check-if-element-is-visible-on-screen/5354536#5354536检查页脚在屏幕上是否可见。如果是,则将按钮定位为position: absolute在一个 div 内。否则,它使用position: fixed.

function isVisible(elment) {
    var vpH = $(window).height(), // Viewport Height
        st = $(window).scrollTop(), // Scroll Top
        y = $(elment).offset().top;

    return y <= (vpH + st);
}

$(window).scroll(function() {
    if($(this).scrollTop() == 0) {
        $('#to-top').fadeOut();
    } else if (isVisible($('footer'))) {
        $('#to-top').css('position','absolute');
    } else {
        $('#to-top').css('position','fixed');
        $('#to-top').fadeIn();
    }
});

jsfiddle http://jsfiddle.net/3EzvR/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 div 浮动在右下角,但不在页脚内 的相关文章

随机推荐

  • ObjectMapper.writeValueAsString 输出中的重复值

    我正在使用杰克逊ObjectMapper使用多态嵌套类对类进行 反 序列化 JSON 到类的反序列化工作正常 但是当我尝试使用以下命令将类序列化为 JSON 时writeValueAsString函数我在输出中观察到重复值 public c
  • 火狐滚动条

    伙计们 有没有一种方法可以在 Firefox 中自定义滚动条 我尝试在 chrome 上使用类似的技术 但我想这仅适用于 chrome 经过一些研究后 我发现无法使用此方法在 Firefox 上自定义它由于引擎中的错误 所以我正在寻找一种替
  • 使用 Vision api 在脸上用可绘制/绘画进行拍照

    我在尝试什么 我正在尝试在脸上使用可绘制 绘画来拍照 但是我无法将两者都放在同一张照片上 我已经尝试过什么 我尝试过使用CameraSource takePicture但我只是得到了脸上没有任何可绘制 油漆的脸 mCameraSource
  • jqGrid - 防止取消选择行

    使用 jqGrid 如果我再次单击所选行 则该行将被取消选择 有什么办法可以防止这种情况发生吗 我希望该行仍被选中 很好的解决方案 更紧凑的版本 beforeSelectRow function rowid e return this ge
  • Java数据文件在类之间共享

    我正在制作一个从文件 Serialized objectInputStream 读取的小程序 该文件是一个注册表列表 其中每个条目都有一个设置为 true 或 false 的布尔变量 在这个程序中 我有两个独立的 JPanel 类 一个是
  • javascript代码是否需要以“