javascript - 如何获取 href 的值并使其滚动到 anchor

标签 javascript jquery html css

所以我尝试使用 jquery 使我的导航可滚动,但由于某种原因,它不起作用。我尝试了很多解决方案,但似乎都没有用。

我的代码:

HTML:

<nav class="column column-12 navigation nav">
    <ul>
        <li class="active onee"><a href="#home" class="scrollable">Home</a></li>
        <li class="onee"><a href="#portfolio" class="scrollable">Portfolio</a></li>
        <li class="onee"><a href="#about" class="scrollable">About</a></li>
        <li class="onee"><a href="#contact" class="scrollable">Contact</a></li>
    </ul>
</nav>

我的所有部分都与 anchor href 具有相同的类。

jQuery:

$(document).ready(function() {
    $(".nav li").click(function() {
        $(".nav li").removeClass("active");
        $(this).addClass("active");
    });

    var $clicked = $("a")
        .attr("href")
        .split("#")
        .val();
        $("a").click(function() {
            /*$(this).find('a').attr('href').split("#");*/
            var url = $(this).attr("href");
            $("body").animate({
                /*scrollTop: $( '.' + $kazkas).offset().top}, 1000);*/
                scrollTop: $("." + url.split("#")).offset().top},1000);
        });
});

在这里,我试图获取单击的 anchor 标记的值,并通过去掉 # 并添加 '.' 来使用它来滚动我的 body 。所以针对我的部分类名。不幸的是,不起作用。

完整代码可以在我的代码笔上找到:http://codepen.io/Limpuls/pen/YGdmkW

有什么想法吗?

谢谢。

最佳答案

Split后,会转为数组。比方说,

var url = "#home";

所以在用 url.split("#") 分割之后

var arr = url.split("#");
//  arr[0] = ''
//  arr[1] = "home"

所以如果你不想把它赋值给变量那么你可以像下面这样直接使用

url.split("#")[1] 

您还需要防止默认 anchor 标记事件。这样做,

 $("a").click(function (e) {
    e.preventDefault();
    e.stopPropagation();

   // your code

 });

关于javascript - 如何获取 href 的值并使其滚动到 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40198539/

相关文章:

asp.net - 在 asp.net 中访问服务器端的输入类型文件

javascript - 登录时显示按钮,Meteor 的空格键

javascript - 单击外部关闭滑动菜单 Javascript

javascript - TypeScript:在 Enum 上执行 switch-case 来设置变量的惯用方法

javascript - 如何默认选择TinyMCE中的 "Justify text"切换按钮?

javascript - 在 IE 上,光标始终位于文本区域的开头

javascript - 如何减慢滑动速度?

jquery - 播放动画时去除边框

html - 在按钮文本上方显示 Font Awesome 图标

javascript - 如何让IE不缓存我的页面?