我怎么能让jQuery直接转到<h2 id ="id-name">?

ude*_*ter 9 javascript jquery

我想让jQuery直接导航(没有动画需要)到我传入变量的id.

我有不同的标记一样id="content",id="edit",id="..."<h2>冠军.使用PHP进行验证我将输出一个变量var NAVIGATE_TO = <?php echo $where_failed;?>,我想将网站移动到该id位置.

就像我做domain.tld/page#edit或者#content用jQuery一样,因为当我加载页面时,我的PHP框架不允许我指示哈希.

Yi *_*ang 35

您可以设置location.hashid您需要浏览器滚动到:

window.location.hash = '#edit';
Run Code Online (Sandbox Code Playgroud)

  • @Chris我相信它是可选的,但是获取`location.hash`将返回包含`#`的字符串 (3认同)

Pat*_*ick 19

根据我的经验,该window.location.hash解决方案仅适用一次.如果您不想使用该插件,可以试试这个:

var navigationFn = {
    goToSection: function(id) {
        $('html, body').animate({
            scrollTop: $(id).offset().top
        }, 0);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后像这样调用它(someID你要滚动到的元素的ID 在哪里):

navigationFn.goToSection('#someID');
Run Code Online (Sandbox Code Playgroud)

有了这个,您还可以改变动画速度(我将它设置为0)以便它是即时的,但您可以将值传递给函数,以便代码可以重复使用.


Kim*_*ho6 5

使用jquery scrollto插件然后就可以这样做

$(document).ready(function(){  
      $(".topMenu").click(function() {
        $.scrollTo($("#edit"), { duration: 0});
      });
Run Code Online (Sandbox Code Playgroud)