HTML/CSS : Using position absolute to stick to the side, 有水平滚动条时

标签 html css

我有一个 div 需要固定在页面的右侧。我使用 position:absolute 并设置了 righttop 属性来完成此操作。

它看起来像这样: Img 1

现在这个解决方案很棒!但是今天,我们遇到了一些问题。 如果屏幕太小以至于它创建了一个水平滚动条,就会发生这种情况(如果你不明白这个问题,请注意底部的滚动条:)): Img 2 Img 3

它粘在窗口的右侧而不是文档 - 这实际上没问题,但是当您移动滚动条时,您会发现它只粘在初始加载 窗口..

所以我需要将 div 粘在文档的右侧,而不是窗口..

我不能使用 fixed。任何人都可以看到解决方案吗?我感到迷茫。

这是一个 Jsfiddle Example

<div style="background-color:red;
width:50px;
height:100px;
position:absolute;
top:20px;
right:0%;">
    test
</div>

欢迎使用 jQuery/JavaScript 解决方案!只要它不是一个庞大的图书馆 :)

最佳答案

您可以使用 Jquery 的 .scrollLeft() 函数。

http://api.jquery.com/scrollleft/

给窗口的scroll事件附加一个事件监听器,根据窗口的宽度和窗口的水平滚动调整div的水平位置。

像这样:

$(window).on("scroll", function() {
    var vW = $(window).width();
    var vS = $(window).scrollLeft();
    var dvW = $("#dv1").width();

    $("#dv1").css("left", vW - dvW + vS);
});

Updated working fiddle

关于HTML/CSS : Using position absolute to stick to the side, 有水平滚动条时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25749853/

相关文章:

CSS 背景图像 Sprite 位置转换在 IE10 中朝不同的方向发展

javascript - 在CSS/JavaScript中,这个图标/字体插件是如何实现的?

html - 移动 Versoin 换行符不起作用

html - css代码中的语法错误

html - 嵌入可以由查看者排序的谷歌表格单元格

html - css 对 Angular 线文本框边框样式

jquery - 如何将此 css 动画转换为 jQuery

html - 如何在全宽容器内添加两个倾斜的列

css - 当我的代码中窗口高度减小时,页脚会向上移动如何强制它低于所有其他内容?

html - CSS - 仅在表格内使用单元格间距设置边框