【问题标题】:Function doesn't work, have i sintax fail?功能不起作用,我的sintax失败了吗?
【发布时间】:2020-05-11 16:32:07
【问题描述】:

好吧,我把我的 JS 文件里面包含有什么问题的代码:

$(document).ready(function () {
$('.menu-toggler').on('click', function () {
    $(this).toggleClass('open');
    $('.top-nav').toggleClass('open');
});

$('.top-nav .nav-link').on('click', function () {
    $('.menu-toggler').removeClass('open');
    $('.top-nav').removeClass('open');
});

$('nav a[href*="#"]').on('click', function () {
    $('html, body').animate( keyframes: {
        scrollTop: $($(this).attr('href')).offset().top - 100
    }, options:2000);
});

});

前两个很好用,但第三个不行。事实上,我的控制台显示了这个错误:

',' expected. ts(1005) [13, 43]

',' expected. ts(1005) [15, 19]

那么,错误在哪里?谢谢!

【问题讨论】:

  • 不要发布代码图片或错误信息 -> How do I ask a good question?
  • options:2000 2000 个选项?那是什么?
  • 您的.animate 参数格式错误 - 查看@Andreas 上面提供的链接上的示例

标签: javascript jquery function onclick nav


【解决方案1】:

.animate() 方法语法为:

.animate( properties [, duration ] [, easing ] [, complete ] )

在哪里

  • properties 是动画将向其移动的 CSS 属性和值的普通对象。
  • duration 是数字或字符串类型,决定动画将运行多长时间。

所以,只需像这样更新您的代码:

$('html, body').animate({
    scrollTop: $($(this).attr('href')).offset().top - 100
}, 2000);

【讨论】:

  • 有效!谢谢,但很奇怪...我观看了一个视频,其中我放在上面的代码实际上运行(带有 keyframesoptions 词)。我必须专注于它才能理解 100%。
  • 我不确定,但这是它的基本语法,它始终有效。
【解决方案2】:

您应该在第 13 行使用逗号而不是冒号

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 2015-07-26
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多