使用 html/javascript 维护回发时的 div 滚动位置

发布于 2024-10-16 12:02:11 字数 69 浏览 3 评论 0原文

有没有一种方法可以在不使用 asp 的情况下保持回发时的 div 滚动位置?到目前为止,我只找到了使用 asp 的解决方案。

Is there a way to maintain the div scroll position on a postback, without using asp? So far I've only found solutions using asp.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

听你说爱我 2024-10-23 12:02:11

http://blogs.x2line.com/al/articles/156.aspx

<!doctype html>
<html>
<head>
<title></title>

<script language="javascript">
    // function saves scroll position
    function fScroll(val)
    {
        var hidScroll = document.getElementById('hidScroll');
        hidScroll.value = val.scrollTop;
    }

    // function moves scroll position to saved value
    function fScrollMove(what)
    {
        var hidScroll = document.getElementById('hidScroll');
        document.getElementById(what).scrollTop = hidScroll.value;
    }
</script>
</head>

<body onload="fScrollMove('div_scroll');" onunload="document.forms(0).submit()";>

<form>

<input type="text" id="hidScroll" name="a"><br>
<div id="div_scroll" onscroll="fScroll(this);" style="overflow:auto;height:100px;width:100px;">

   .. VERY LONG TEXT GOES HERE

</div>
</form>
</body>
</html>

http://blogs.x2line.com/al/articles/156.aspx

<!doctype html>
<html>
<head>
<title></title>

<script language="javascript">
    // function saves scroll position
    function fScroll(val)
    {
        var hidScroll = document.getElementById('hidScroll');
        hidScroll.value = val.scrollTop;
    }

    // function moves scroll position to saved value
    function fScrollMove(what)
    {
        var hidScroll = document.getElementById('hidScroll');
        document.getElementById(what).scrollTop = hidScroll.value;
    }
</script>
</head>

<body onload="fScrollMove('div_scroll');" onunload="document.forms(0).submit()";>

<form>

<input type="text" id="hidScroll" name="a"><br>
<div id="div_scroll" onscroll="fScroll(this);" style="overflow:auto;height:100px;width:100px;">

   .. VERY LONG TEXT GOES HERE

</div>
</form>
</body>
</html>
硬不硬你别怂 2024-10-23 12:02:11

也许这个javascript代码适合你

        function loadScroll ()
        {
            var m = /[&?]qs\=(\d+)/.exec (document.location);
            if (m != null)
                myDiv.scrollTop = parseInt (m[1]);
        }

        function saveScroll ()
        {
            var form = document.getElementById ("myForm");
            var sep = (form.action.indexOf ("?") == -1) ? "?" : "&";
            form.action += sep + "qs=" + myDiv.scrollTop;
        }

现在,你可以观察“submit”事件来保存“action”属性中的位置:

        document.getElementById ("myForm").addEventListener ("submit", saveScroll, false);

在你的BODY标签中......

<body onload="loadScroll ();">
    ....
</body>

我现在无法测试代码,但我认为你明白了。

Maybe this javascript code works for you

        function loadScroll ()
        {
            var m = /[&?]qs\=(\d+)/.exec (document.location);
            if (m != null)
                myDiv.scrollTop = parseInt (m[1]);
        }

        function saveScroll ()
        {
            var form = document.getElementById ("myForm");
            var sep = (form.action.indexOf ("?") == -1) ? "?" : "&";
            form.action += sep + "qs=" + myDiv.scrollTop;
        }

Now, you can watch for the "submit" event to save the position in the "action" attribute:

        document.getElementById ("myForm").addEventListener ("submit", saveScroll, false);

And in your BODY tag...

<body onload="loadScroll ();">
    ....
</body>

I can't test the code right now, but I think you get the idea.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文