基本上我正在做的是监听器,它检查水平滚动是否已经改变。如果滚动已更改,则它将重新定位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>
答案 0 :(得分:0)
这可以通过使用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放在右上角。即使它位于左侧,它仍然会产生位于屏幕右上角的效果。如果您需要任何澄清,请与我们联系。