0

在我的 asp.net 应用程序中,我有一个带有标题的页面,然后在页面的正文中显示人们可以选择的项目。当有人选择一个项目时,一个 iframe 会出现在正文的右侧,并显示有关所选项目的详细信息。iframe 大小和位置是使用屏幕大小设置的。在所有桌面浏览器中 - 我可以使用下面的 javascript 来解决这个问题。

<script type="text/javascript">
window.onscroll = scroll;
</script>

这是javascript函数滚动

function scroll() {
    var divT = document.getElementById('searchframe');
    var divD = document.getElementById('detailframe');

    if (document.body.scrollTop > 80) {
        divT.style.top = document.body.scrollTop
        divD.style.top = document.body.scrollTop

        document.getElementById('detailframe').height = '100%';
    }
    if (document.body.scrollTop == 0) {
        divT.style.top = 75
        divD.style.top = 75
    }
}

使用http://code.google.com/p/ibbdemo2/ - 一个 adobe air ipad 模拟器进行测试时,甚至没有调用滚动功能 。我可以通过放置警报来判断这一点,警报会在所有其他浏览器上弹出,甚至在这个模拟器中,除了滚动功能。在其他浏览器中,在 window.onclick 行放置警报会显示警报,但在 safari mobile 上不会显示警报 - 这意味着 window.onscroll 事件似乎甚至没有被触发。谢谢您的帮助。

编辑 - 我还可以在所有浏览器中使用以下任何行来捕获滚动事件,除了移动 safari

window.onscroll = scroll;
document.onscroll = scroll;
document.addEventListener("scroll", scroll, false);
4

3 回答 3

0

document.getElementById('iframeID').style.top = intVal;

于 2013-02-04T22:54:26.050 回答
0

为什么必须在 javascript 中执行此操作?

CSS:

position:fixed;
right: 10px;
top: 10px;

不工作?

于 2012-06-25T15:06:14.000 回答
0

这个问题只是由于模拟器,实际上在设备上工作。

于 2012-06-26T13:53:56.850 回答