更新 - 解决方案
我终于找到了解决方案……而且超级简单!
只需将以下内容添加到您的 CSS 中:
body { overflow-x: visible; }
当jPanelMenu 将overflow-x 设置为在body 上隐藏时,似乎会出现冲突。
我正在同时运行 jPanelMenu 和 jRespond (由于 jRespond,jPanelMenu 仅在较小的屏幕上有效,在较大的屏幕上,菜单是固定的并且不使用 jPanelMenu)。
一切正常,但是当我尝试使用任何类型的 js 在页面滚动上应用 css 时,它在 jPanelMenu 处于活动状态时不起作用。
我想添加一个浮动菜单按钮以在用户滚动经过标题后打开 jPanelMenu,仅当 jPanelMenu 处于活动状态时才需要处于活动状态。
这是我一直在使用的滚动片段之一:
jQuery(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 200) {
$("#scroll-trigger").addClass("show");
} else {
$("#scroll-trigger").removeClass("show");
}
});
这可以独立工作,还有许多其他不同的方式来写出这个滚动方法。但是当 jPanelMenu 打开时,这个滚动代码会以某种方式变得无用。
这是我在 codrops 上找到的另一个,它也可以自己工作,但与 jPanelMenu 冲突:
var cbpAnimatedHeader = (function() {
var docElem = document.documentElement,
header = document.querySelector( 'header' ),
didScroll = false,
changeHeaderOn = 300;
function init() {
window.addEventListener( 'scroll', function( event ) {
if( !didScroll ) {
didScroll = true;
setTimeout( scrollPage, 250 );
}
}, false );
}
function scrollPage() {
var sy = scrollY();
if ( sy >= changeHeaderOn ) {
classie.add( header, 'bodhi-header-shrink' );
}
else {
classie.remove( header, 'bodhi-header-shrink' );
}
didScroll = false;
}
function scrollY() {
return window.pageYOffset || docElem.scrollTop;
}
init();
})();
我个人在代码中找不到任何东西,并且在网上搜索了类似的东西并尝试了很多不同的实现方式,这并不好笑。任何帮助将不胜感激。提前致谢!