如何在浏览器中使用Javascript按X-Y坐标定位?

时间:2008-09-15 22:39:36

标签: javascript jquery dom

我试图这样做,当用户向下滚动页面,点击链接,做他们需要做的任何事情,然后回到带有链接的页面时,它们是相同的(xy )他们以前在浏览器中的位置。我该怎么做?

我是一个DOM新手所以我不太了解如何做到这一点。

目标浏览器:IE6 / 7/8,Firefox 2/3,Opera,Safari

补充:我正在使用一个名为JQuery的程序来帮助我学习

5 个答案:

答案 0 :(得分:3)

要获取用户在页面上单击的位置的x-y位置,请使用以下jQuery代码:

<html>
    <head>
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript">
            jQuery(document).ready(function(){
                $("#special").click(function(e){
                    $('#status2').html(e.pageX +', '+ e.pageY);
                }); 
            });
        </script>
    </head>
    <body>
        <h2 id="status2">
            0, 0
        </h2>
        <div style="width: 100px; height: 100px; background:#ccc;" id="special">
            Click me anywhere!
        </div>
    </body>
</html>

答案 1 :(得分:0)

尝试thisthis

答案 2 :(得分:0)

据我所知,获取视口位置的代码在浏览器之间有所不同,因此使用某种框架会更容易,例如Prototype有一个函数document.viewport.getScrollOffsets(其中)我相信,是你追求的那个。)

然而,获取坐标只是一部分,另一部分将在以后与它们做一些事情。在这种情况下,您可以向window.unload事件添加事件侦听器,当该事件触发时,将该位置保存在cookie中,之后,当用户再次打开该页面时,检查该cookie是否存在并相应地滚动。

虽然如果您关心的是让用户回到他通过浏览器的“后退”按钮进入页面时的位置,那么大多数浏览器是否已经自动执行此操作?

答案 3 :(得分:0)

通常情况下,如果您离开然后返回,浏览器将保留页面视口(尝试使用您喜爱的新闻网站上的任何页面)。唯一的例外是,如果您调整缓存设置,每次都要重新下载并重新渲染页面。

不这样做(也就是说,不将页面设置为永远不会被缓存)可能是解决问题的最简单,最不突兀的方法。

答案 4 :(得分:-1)

你可以使用offsetLeft和offsetTop