如何使用get方法滚动到页面的位置?

时间:2014-07-29 11:29:18

标签: php css

如何使用get方法滚动到页面位置?

EG: mysite.com/index.php?positon=1

在加载页面之后,它将滚动到页面的id=1位置

我该怎么做?

1 个答案:

答案 0 :(得分:0)

你可以使用这个javascript函数:

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(m,key,value)     {
        vars[key] = value;
    });
    return vars;
}

例如,当您的网址为:mysite.com/index.php?positon=1时 您可以通过执行以下操作获得价值:var position = getUrlVars()["position"];

然后滚动你做:

function findPos(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        do {
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    return [curtop];
    }
}

window.scroll(0,findPos(document.getElementById(position)));

你必须在DOM加载后使用它,所以在</body>之后写这样:

<script type="text/javascript">

(function() {

    function getUrlVars() {
        var vars = {};
        var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(m,key,value)     {
            vars[key] = value;
        });
        return vars;
    }


    var position = getUrlVars()["position"];


    function findPos(obj) {
        var curtop = 0;
        if (obj.offsetParent) {
            do {
                curtop += obj.offsetTop;
            } while (obj = obj.offsetParent);
        return [curtop];
        }
    }

     window.scroll(0,findPos(document.getElementById(position)));

 })();

 </script>

然后,您可以将这些函数重用于您想要的任何变量

我无法通过JSFiddle向您展示,因为?position=1不会对其进行操作 但是这里是一个完整工作的html页面的粘贴,我用它进行测试:http://pastebin.com/tjj4fDK9
将其粘贴到计算机上的html文件中,使用Chrome打开并在网址

中添加?position=1