如何:Jquery在页面加载后滚动到操作,而不是单击?

如何:Jquery在页面加载后滚动到操作,而不是单击?,jquery,scrollto,Jquery,Scrollto,我认为这需要一个更好的解释: 我有一个带有一些链接的导航: <a id="home" href="/">Home</a> <a id="screenshots" class="scroll_to_screenshots" href="#">Screenshots</a> <a id="ask" class="scroll_to_container" href="/ask">Support</a> 现在,对于屏幕截图,它工作

我认为这需要一个更好的解释:

我有一个带有一些链接的导航:

<a id="home" href="/">Home</a>
<a id="screenshots" class="scroll_to_screenshots" href="#">Screenshots</a>
<a id="ask" class="scroll_to_container" href="/ask">Support</a>
现在,对于屏幕截图,它工作正常:它向下滚动到屏幕截图id。但是第二个需要先加载一个页面,然后滚动。显然,这不起作用(它会短暂向下滚动,然后页面加载开始。我可以将该操作更改为-先加载页面-向下滚动吗


显然,我还有另一个问题,当我在…/询问时,第一个链接不再起作用。

简单

您应在页面加载功能中使用:

ScriptManager.RegisterStartupScript(this, GetType(), ToString(), "$.scrollTo($('#container').position().top-40, 300)", true);

把这个放到联系页面

<script type="text/javascript">
  $(function(){
     $.scrollTo($("#container").position().top-40, 300);
  });
</script>

$(函数(){
$.scrollTo($(“#容器”).position().top-40300);
});

所以这就是诀窍。不过,如果有人有更精致、优雅的答案,我会洗耳恭听

// on the /example slug only
var fragment = 'example';

var url = window.location.href.split('/');

var last_item = url[url.length-2];
last_item = last_item.replace(/(\?|\#).*/, '');

if (last_item == fragment) {
    setTimeout(function() {$.scrollTo($("ul#posts").position().top, 300);}, 1000);
而不是使用这个:

$(document).ready(function(){
   // Your stuff here
});
$(window).load(function(){
   // Your stuff here
});
尝试使用以下方法:

$(document).ready(function(){
   // Your stuff here
});
$(window).load(function(){
   // Your stuff here
});

这将使脚本等待页面上的所有元素加载完毕后再滚动。

谢谢你的回答。我对jquery没有那么高的水平,它如何转化为我上面的代码?我想上面的答案是针对asp.net ajax.oops的。我是指asp.net。我不确定我为什么要使用ajax:p。无论如何,我认为simon正在寻找基于纯js的脚本LutionTanks James。没有办法在js文件本身中定义它吗?比如:先打开页面,然后滚动到。我在原始帖子中添加了我的更改,你可能会发现我在那里做错了什么。为什么你要将该函数放在click事件中?既然你需要在pageload上运行代码,那么你就需要将其放入其中。这是jquery pageload->$(function(){alert('jquery page load event');})或$(document).ready(function(){//code here});嗯,我想我想要的东西不起作用。问题是:我有一个带有链接的导航。现在一些链接只是沿着页面向下滚动到id,但有一个链接首先转到/contact,然后应该滚动(我似乎没有访问/contact html的权限。如果正在加载另一个页面..并且您希望在该页面上“滚动”,那么js必须驻留在该页面上(contact)…除非您通过ajax加载其他页面