关闭后无法实现锚点平滑滚动 canvas menu/content
Can't implement anchor smooth scrolling with off canvas menu/content
我正在为我正在进行的项目寻求帮助,但我似乎无法弄清楚。我已经搜索并尝试了各种脚本以及没有冲突的脚本。我希望有人能帮助我。
我有一个从导航锚定到页面内容的页面。当您将鼠标悬停在页面中间的图像上时,您可以单击关闭 canvas 页面。我已经完成了这项工作,但是当您单击页面底部的主导航时,我希望能够平滑滚动。 off canvas 锚点和平滑滚动脚本似乎不能一起工作。我对 jquery 和 javascript 很陌生,所以我似乎无法让它工作。
我找到了这段用于平滑滚动的代码(现在我已将其注释掉),但是当我将这段代码放在页面上时,它破坏了导航锚:
$(function() {
$('a[href*="#"]:not([href="#"])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html, body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
是否有其他代码可以在我的页面上运行?你可以在这里查看我的页面:
http://ebresearch1.wpengine.com/index.html
此外,我无法让导航图标处于活动状态。
我正在使用此代码:
jQuery('.nodes a').click(function () {
jQuery(this).find('.inactive-circle').toggleClass('active hide');
});
但它只切换活动和非活动状态。我希望它们仅在您单击另一个导航项之前保持活动状态。
平板电脑问题:
另外请注意,我的 mobile/tablet 导航中的汉堡包 link 在点击后不会关闭导航。它只是保持开放。单击 link.
后,我似乎无法触发 off canvas 关闭
我知道这是很多信息,但我被卡住了。如果我需要提供更多信息,请告诉我,我会post。
谢谢!
第二个问题的快速答案:
jQuery('.nodes a').click(function () {
jQuery('.nodes a').find('.inactive-circle').removeClass('active hide');
jQuery(this).find('.inactive-circle').addClass('active hide');
});
不太确定您的 div 和 css 是如何在这里设置的,因为感觉它可能更简单,但主要原则是首先使您的所有 .nodes a
div 未激活,然后将其激活。
对于第三个问题,这有点 hack,但为了避免干扰您的 offCanvas 脚本,您可以在单击菜单 div 时触发对汉堡包的点击:
jQuery('#0 a').click(function () {
jQuery('#rightBurger').trigger('click');
});
希望能有所帮助,必须 运行 但如果没有其他人这样做,我会回来尝试主要的。
我正在为我正在进行的项目寻求帮助,但我似乎无法弄清楚。我已经搜索并尝试了各种脚本以及没有冲突的脚本。我希望有人能帮助我。
我有一个从导航锚定到页面内容的页面。当您将鼠标悬停在页面中间的图像上时,您可以单击关闭 canvas 页面。我已经完成了这项工作,但是当您单击页面底部的主导航时,我希望能够平滑滚动。 off canvas 锚点和平滑滚动脚本似乎不能一起工作。我对 jquery 和 javascript 很陌生,所以我似乎无法让它工作。
我找到了这段用于平滑滚动的代码(现在我已将其注释掉),但是当我将这段代码放在页面上时,它破坏了导航锚:
$(function() {
$('a[href*="#"]:not([href="#"])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html, body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
是否有其他代码可以在我的页面上运行?你可以在这里查看我的页面:
http://ebresearch1.wpengine.com/index.html
此外,我无法让导航图标处于活动状态。
我正在使用此代码:
jQuery('.nodes a').click(function () {
jQuery(this).find('.inactive-circle').toggleClass('active hide');
});
但它只切换活动和非活动状态。我希望它们仅在您单击另一个导航项之前保持活动状态。
平板电脑问题:
另外请注意,我的 mobile/tablet 导航中的汉堡包 link 在点击后不会关闭导航。它只是保持开放。单击 link.
后,我似乎无法触发 off canvas 关闭我知道这是很多信息,但我被卡住了。如果我需要提供更多信息,请告诉我,我会post。
谢谢!
第二个问题的快速答案:
jQuery('.nodes a').click(function () {
jQuery('.nodes a').find('.inactive-circle').removeClass('active hide');
jQuery(this).find('.inactive-circle').addClass('active hide');
});
不太确定您的 div 和 css 是如何在这里设置的,因为感觉它可能更简单,但主要原则是首先使您的所有 .nodes a
div 未激活,然后将其激活。
对于第三个问题,这有点 hack,但为了避免干扰您的 offCanvas 脚本,您可以在单击菜单 div 时触发对汉堡包的点击:
jQuery('#0 a').click(function () {
jQuery('#rightBurger').trigger('click');
});
希望能有所帮助,必须 运行 但如果没有其他人这样做,我会回来尝试主要的。