javascript - 在 JavaScript 中定位名称属性时,smoothscroll 不起作用

标签 javascript jquery

当我使用 smoothscroll 插件定位 name 属性时,平滑滚动不起作用,但如果我定位 id 属性,smoothscroll 工作正常。出现以下控制台错误,请建议如何解决。

$(document).ready(function() {
var class1 = $("[class^='test']");
    $('class1').on('click', function (event) {
        var scrollStatus = $(this).attr('data-smooth-scroll');
        if(scrollStatus !== 'false' && scrollStatus !== undefined) {
            var actualHrefValue = $(this).attr("href");
            var actualNameValue = $('[name="' + actualHrefValue.substr(1) + '"]');
            if(actualHrefValue.charAt(0) === "#") {
                if(actualHrefValue !== '#' && actualHrefValue !== null) {
                    event.preventDefault();
                    document.querySelector(actualNameValue).scrollIntoView({behavior: 'smooth', block: "start" });
                }
            }
        }
    });

});

错误: enter image description here

HTML:

<a type="hyperlink" class="test_1" href="#link">Click</a>

<a name="link"></a>

最佳答案

您正在使用

document.querySelector(actualNameValue)

其中actualNameValue已经是一个元素

var actualNameValue = $('[name="' + actualHrefValue.substr(1) + '"]');

尝试

actualNameValue.scrollIntoView({behavior: 'smooth', block: "start" });

而不是

document.querySelector(actualNameValue).scrollIntoView({behavior: 'smooth', block: "start" });

关于javascript - 在 JavaScript 中定位名称属性时,smoothscroll 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52000176/

相关文章:

javascript - 使用 jQuery 方法扩展 Zepto.js?滚动顶部()

javascript - 如何使用 jquery 中变量的值手动设置 href

javascript - 神秘的 Magento 压缩

javascript - 更改 div 中包裹的字符串特定部分的颜色

javascript - 按每隔一行对表进行排序

javascript - 将类添加到日期选择器选择

javascript - 使用 useRef Hook 将副本复制到剪贴板

javascript - 模态形式消失而不点击形式

javascript - 即使在 JavaScript 中设置焦点后,Tab 事件也会更改焦点

javascript - tumblr 和 google+ 如何像拼图一样堆叠图像?