如何使用get方法滚动到页面位置?
EG: mysite.com/index.php?positon=1
在加载页面之后,它将滚动到页面的id=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