如何使用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