Javascript 关闭全屏菜单覆盖
我的全屏菜单覆盖有一个关闭按钮,但我想关闭覆盖也通过点击覆盖本身。因此,如果在覆盖层上的菜单外单击,覆盖层将关闭。与关闭btw相同。 她是代码,但要添加或编辑什么Javascript 关闭全屏菜单覆盖,javascript,jquery,Javascript,Jquery,我的全屏菜单覆盖有一个关闭按钮,但我想关闭覆盖也通过点击覆盖本身。因此,如果在覆盖层上的菜单外单击,覆盖层将关闭。与关闭btw相同。 她是代码,但要添加或编辑什么 (function() { var triggerBttn = document.getElementById( 'trigger-overlay' ), overlay = document.querySelector( 'div.overlay' ), closeBttn = overlay
(function() {
var triggerBttn = document.getElementById( 'trigger-overlay' ),
overlay = document.querySelector( 'div.overlay' ),
closeBttn = overlay.querySelector( 'button.overlay-close' );
transEndEventNames = {
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'transitionend',
'OTransition': 'oTransitionEnd',
'msTransition': 'MSTransitionEnd',
'transition': 'transitionend'
},
transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ],
support = { transitions : Modernizr.csstransitions };
function toggleOverlay() {
if( classie.has( overlay, 'open' ) ) {
classie.remove( overlay, 'open' );
classie.add( overlay, 'close' );
var onEndTransitionFn = function( ev ) {
if( support.transitions ) {
if( ev.propertyName !== 'visibility' ) return;
this.removeEventListener( transEndEventName, onEndTransitionFn );
}
classie.remove( overlay, 'close' );
};
if( support.transitions ) {
overlay.addEventListener( transEndEventName, onEndTransitionFn );
}
else {
onEndTransitionFn();
}
}
else if( !classie.has( overlay, 'close' ) ) {
classie.add( overlay, 'open' );
}
}
triggerBttn.addEventListener( 'click', toggleOverlay );
closeBttn.addEventListener( 'click', toggleOverlay );
})();
您所需要做的就是在整个overlay div上放置一个事件侦听器,用于“click”
overlay.addEventListener( 'click', toggleOverlay );
底部没有真正定义closeBttn,因为根本没有“按钮”(只有“a”标记) 代码: 这将“closeBttn”(未使用wich)定义为整个覆盖区域 因此,在script.js上需要这样做,以便在当前代码下方未单击按钮时更改按钮的类别:
var otherthingy = document.querySelector('#smp_menu');
otherthingy.addEventListener('click', function (){
button.classList.toggle('open');
});
恐怕我无法理解。也许你可以做浏览器检查元素,看看有什么问题。页面还可以,所以它是一个带有revslider的wordpress。一些JS代码乱七八糟。简单的方法是添加一个带有
document.getElementById(“smp_菜单”).addEventListener('click',toggleOverlay)的自定义脚本标记代码>编辑:在脚本下面添加了jquery和js混合:document.getElementById(“smp_菜单”).addEventListener('click',toggleOverlay);但是如果您可以编辑该文件,然后在beggingvar triggerBttn=document.getElementById('trigger overlay')、overlay=document.querySelector('div.overlay')、closeBttn=overlay.querySelector('button.overlay close')处用“;”结束每一行,nada就不起作用了代码>应该是var triggerbtn=document.getElementById('trigger overlay');var overlay=document.querySelector('div.overlay');var closeBttn=overlay.querySelector('button.overlay close')代码>因为它在尝试访问closeBttn.addEventListener('click',toggleOverlay)时给出了一个“不能读取null属性”代码>你能帮我修改脚本并粘贴到这里吗?我在js是个彻头彻尾的笨蛋,我不想把它搞砸。
var otherthingy = document.querySelector('#smp_menu');
otherthingy.addEventListener('click', function (){
button.classList.toggle('open');
});