Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关闭全屏菜单覆盖_Javascript_Jquery - Fatal编程技术网

Javascript 关闭全屏菜单覆盖

Javascript 关闭全屏菜单覆盖,javascript,jquery,Javascript,Jquery,我的全屏菜单覆盖有一个关闭按钮,但我想关闭覆盖也通过点击覆盖本身。因此,如果在覆盖层上的菜单外单击,覆盖层将关闭。与关闭btw相同。 她是代码,但要添加或编辑什么 (function() { var triggerBttn = document.getElementById( 'trigger-overlay' ), overlay = document.querySelector( 'div.overlay' ), closeBttn = overlay

我的全屏菜单覆盖有一个关闭按钮,但我想关闭覆盖也通过点击覆盖本身。因此,如果在覆盖层上的菜单外单击,覆盖层将关闭。与关闭btw相同。 她是代码,但要添加或编辑什么

(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);但是如果您可以编辑该文件,然后在begging
var 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');
});