[英]Emulate fixed right position
基本上我在做什么是侦听器,它检查水平滚动是否已更改。 如果滚动已更改,则它将重新定位div,因此它始终位于视口的左上角。 使用getScroll()
值非常容易。
但是如何从左向右更改? 问题是正确的:0无效,因为它将div几乎置于屏幕中间,并且通过滚动或缩放,它将停留在该位置(Windows Phone 7不支持position: fixed
!)也许有人遇到类似的问题,找到了解决方法或正确的计算方法?
另外,为什么主体始终为1024px(与视口大小相同)? 有没有办法获得网站的总规模?
到目前为止,只有我使用过的变量是: window.getScroll().x
, document.body.scrollWidth
和window.innerWidth
body {
width: 2000px;
height: 2000px;
}
#rightDiv {
right: 0px;
top: 0px;
position: fixed;
}
<body>
<div id='rightDiv'>
I am in the right-top corner </div>
</body>
这可以通过使用jQuery完成:
$(function(){
function moveDiv(){
var divSize = $("#rightDiv").width();
var windowSize = $("window").width();
var leftPos = windowSize - divSize;
var topPos = $("window").scrollTop();
$("#rightDiv").css({"position":"absolute", "left":leftPos, "top":topPos});
}
moveDiv();
$("window").scroll(function(){
moveDiv();
}
);
$("window").resize(function(){
moveDiv();
}
);
});
这会将您的div设置为在加载文档时将其自身定位在屏幕的右侧,然后每当滚动屏幕时,它将重新计算位置。
本质上,我们根据您的div的宽度和窗口的大小进行计算,以确定将div放置在右上角的左侧位置。 即使它是从左侧放置的,它仍然可以提供位于屏幕右上方的效果。 让我知道您是否需要任何澄清。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.