使用tympanus.net模态(带有伟大的动画)很容易删除背景 div(<div class="md-overlay"></div>
)让我与模态后面的菜单项进行交互,但我不知道如何在打开一个新模态时只显示一个模态以前的还在那里,新的出现在它上面。
一切都由.md-show
应用于被调用模式的类控制。我认为我需要做的是删除所有.md-show
应用的类,然后再用同一个类打开一个新类。也许用脚本?
更新:这是脚本:版权所有 2013,Codrops //对不起,我不能发表评论!他们不工作!
var ModalEffects = (function() {
function init() {
var overlay = document.querySelector( '.md-overlay' );
[].slice.call( document.querySelectorAll( '.md-trigger' ) ).forEach( function( el, i ) {
var modal = document.querySelector( '#' + el.getAttribute( 'data-modal' ) ),
close = modal.querySelector( '.md-close' );
function removeModal( hasPerspective ) {
classie.remove( modal, 'md-show' );
if( hasPerspective ) {
classie.remove( document.documentElement, 'md-perspective' );
}
}
function removeModalHandler() {
removeModal( classie.has( el, 'md-setperspective' ) );
}
el.addEventListener( 'click', function( ev ) {
classie.add( modal, 'md-show' );
overlay.removeEventListener( 'click', removeModalHandler );
overlay.addEventListener( 'click', removeModalHandler );
if( classie.has( el, 'md-setperspective' ) ) {
setTimeout( function() {
classie.add( document.documentElement, 'md-perspective' );
}, 25 );
}
});
close.addEventListener( 'click', function( ev ) {
ev.stopPropagation();
removeModalHandler();
});
} );
}
init();
})();
在打开新模式之前,我想我需要在.md-show
这里删除:
el.addEventListener( 'click', function( ev ) {
classie.add( modal, 'md-show' );
overlay.removeEventListener( 'click', removeModalHandler );
overlay.addEventListener( 'click', removeModalHandler );
if( classie.has( el, 'md-setperspective' ) ) {
setTimeout( function() {
classie.add( document.documentElement, 'md-perspective' );
}, 25 );
}
});
我做了一些尝试但没有成功,所以一些帮助将不胜感激!:)鼓膜参考文章