繁体   English   中英

模拟固定的正确位置

[英]Emulate fixed right position

基本上我在做什么是侦听器,它检查水平滚动是否已更改。 如果滚动已更改,则它将重新定位div,因此它始终位于视口的左上角。 使用getScroll()值非常容易。

但是如何从左向右更改? 问题是正确的:0无效,因为它将div几乎置于屏幕中间,并且通过滚动或缩放,它将停留在该位置(Windows Phone 7不支持position: fixed !)也许有人遇到类似的问题,找到了解决方法或正确的计算方法?

另外,为什么主体始终为1024px(与视口大小相同)? 有没有办法获得网站的总规模?

到目前为止,只有我使用过的变量是: window.getScroll().xdocument.body.scrollWidthwindow.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM