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


How to Scroll to position of page using get method?

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

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

加载页面后,它将滚动到页面

id=1位置

你可以使用这个javascript函数:

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

例如你的url是: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打开并在URL

中添加?position=1