javascript - 模拟固定的正确位置

标签 javascript css windows-phone-7 internet-explorer-9 mootools

基本上我正在做的是监听器,它检查水平滚动是否已更改。如果 scroll 改变了,那么它会重新定位 div,所以它总是在视口(viewport)的左上角。使用 getScroll() 值非常容易。

但是我怎样才能从左到右改变呢?问题是对的:0 不起作用,因为它将 div 几乎放在屏幕中间,通过滚动或缩放,它会留在那里(Windows Phone 7 不支持 position: fixed!) 也许有人遇到过类似的问题并找到了解决方法或正确的计算方法?

另外,为什么 body 总是 1024px(与视口(viewport)大小相同)?有没有办法获得网站的总大小?

到目前为止我只使用过的变量是: 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 放在右上角的左侧位置。即使它位于左侧,它仍然会产生位于屏幕右上角的效果。如果您需要任何说明,请告诉我。

关于javascript - 模拟固定的正确位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17409401/

相关文章:

javascript - 如何将用户重定向到 session 中设置的页面?

html - WordPress 编辑包含 CSS 的帖子或页面将显示 404 not found

javascript - Codeception 中的 jQuery 未定义

php - 在 php 循环中写入 javascript 数组

css - 歌剧:位置:固定和背景图像

html - 第一行 3 个图像,然后第二行下面 2 个图像

html - 在后台WP7应用中流式传输HTML音频

windows-phone-7 - 如何从 Windows Phone 上的前台应用程序发出 ScheduledTask 信号?

c# - 如何恢复此 rss 提要的图像?

javascript - 如何使用jquery清除和设置nopcommerce中的文本框、复选框和下拉列表