gpt4 book ai didi

jquery - 使用 jQuery 更改页面滚动上的导航事件类

转载 作者:行者123 更新时间:2023-11-28 05:37:48 25 4
gpt4 key购买 nike

我试图在向下滚动页面的不同部分时更改导航类,但出现错误。这是我当前的代码:

(function($) {
"use strict";

$(document).ready(function () {

$(document).on("scroll", onScroll);

//smoothscroll
$('a[href^="#"]').on('click', function (e) {
e.preventDefault();
$(document).off("scroll");

$('a').each(function () {
$(this).removeClass('active');
})
$(this).addClass('active');

var target = this.hash,
menu = target;
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top+2
}, 500, 'swing', function () {
window.location.hash = target;
$(document).on("scroll", onScroll);
});
});
});

function onScroll(event){
var scrollPos = $(document).scrollTop();
$('.menu li a').each(function () {
var currLink = $(this);
var refElement = $(currLink.attr("href"));
if (refElement.position().top <= scrollPos && refElement.position().top + refElement.height() > scrollPos) {
$('.menu li a').removeClass("active");
currLink.addClass("active");
}
else{
currLink.removeClass("active");
}
});
}

})(jQuery);

我正在尝试在 WordPress 主题中使用它。代码布局中是否存在任何可能导致问题的错误?

提前致谢。

斯科特。

最佳答案

问题可能是您在定义它之前使用了 $target,并且启用了严格模式。尝试在声明列表中初始化 $target(用逗号将其添加到列表中):

(function($) {
"use strict";

$(document).ready(function () {

$(document).on("scroll", onScroll);

//smoothscroll
$('a[href^="#"]').on('click', function (e) {
e.preventDefault();
$(document).off("scroll");

$('a').each(function () {
$(this).removeClass('active');
})
$(this).addClass('active');

var target = this.hash,
menu = target,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top+2
}, 500, 'swing', function () {
window.location.hash = target;
$(document).on("scroll", onScroll);
});
});
});

function onScroll(event){
var scrollPos = $(document).scrollTop();
$('.menu li a').each(function () {
var currLink = $(this);
var refElement = $(currLink.attr("href"));
if (refElement.position().top <= scrollPos && refElement.position().top + refElement.height() > scrollPos) {
$('.menu li a').removeClass("active");
currLink.addClass("active");
}
else{
currLink.removeClass("active");
}
});
}

})(jQuery);

关于jquery - 使用 jQuery 更改页面滚动上的导航事件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38088668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com