gpt4 book ai didi

javascript - 单击时关闭覆盖 Div

转载 作者:行者123 更新时间:2023-11-28 15:58:36 24 4
gpt4 key购买 nike

我有两个按钮可以打开和关闭叠加层。

.trigger-overlay 用于显示菜单和 .overlay-close 用于多个覆盖以关闭它们。

.wrap 包装所有内容,并在通过添加 .wrap-open 类打开叠加层时立即滑动

这有效 .trigger-overlay 被点击但当 .overlay-close 被点击时。 See example . (单击第二张幻灯片中的链接 1 或链接 2)。

当点击 .overlay-close 时,我需要对下面的 JS 代码做什么才能删除 .wrap-open

JS fiddle : https://jsfiddle.net/cgx8zu2h/

工作示例: https://www.uk-cpi.com/temp-js/annual-review/

JavaScript

(function() {
var triggerBttn = document.getElementsByClassName('trigger-overlay');
var closeBttn = document.getElementsByClassName('overlay-close');
var wrap = document.querySelector('div.wrap');
transEndEventNames = {
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'transitionend',
'OTransition': 'oTransitionEnd',
'msTransition': 'MSTransitionEnd',
'transition': 'transitionend'
},
transEndEventName = transEndEventNames[Modernizr.prefixed('transition')],
support = {
transitions: Modernizr.csstransitions
};

function toggleOverlay() {
var overlay = document.getElementById(this.getAttribute('data-href'));

// If overlay is open
if (classie.has(overlay, 'zap')) {

classie.remove(overlay, 'zap');
classie.remove(wrap, 'wrap-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();
}
}

// If overlay isn't closed
else if (!classie.has(overlay, 'close')) {
classie.add(overlay, 'zap');
classie.add(wrap, 'wrap-open');
}
// If overlay is closed
else if (classie.has(overlay, 'close')) {
classie.add(overlay, 'zap');
classie.add(wrap, 'wrap-open');
}
}



for (var i = 0; i < triggerBttn.length; i++) {
triggerBttn[i].addEventListener('click', toggleOverlay);
}

//counts number of closeBttn and remove zap on click for all
for (var i = 0; i < closeBttn.length; i++) {
closeBttn[i].addEventListener('click', function() {
this.parentNode.className = this.parentNode.className.replace(/(?:^|\s)zap(?!\S)/g, '');
});
}
})();

最佳答案

如您所见 - 基本上我只是告诉 #menu 位于 z-index: 180 .. 但我也消除了您对“classie”的使用,因为jquery 已经有了。尽管您知道使用纯 JS 方法来完成工作很好,但如果您已经在加载 jquery 为什么不利用它呢? https://jsfiddle.net/te0s2e86/1/

#menu{ z-index: 180; }

关于javascript - 单击时关闭覆盖 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40586741/

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