私はそれの外をクリックしてポップアップを閉じるという質問を以前に聞いてきました。私は幾分複雑なポップアップを持ち、Phillip Waltonが提供するソリューションは私のために働いていません。外でクリックしてポップアップを非表示にします(Philip Waltonsソリューションの問題)
彼のコードは単に私のページをぼやけてしまったが、ポップアップが表示されなくなった。
$(document).on('click', function(event) {
if (!$(event.target).closest('.maincontainer').length) {
popup.classList.remove('popup--open');
popup.style.display = 'none';
popupAccessory.style.display = 'none';
popupAccessory.classList.remove('popup--accessory--open');
maincontainer.classList.remove('blurfilter');
}
});
私も試してみました:私は、ポップアップ自体に含めて、任意の場所をクリックしたときに
window.addEventListener('click', function(event) {
if (event.target != popup) {
popup.classList.remove('popup--open');
popup.style.display = 'none';
popupAccessory.style.display = 'none';
popupAccessory.classList.remove('popup--accessory--open');
maincontainer.classList.remove('blurfilter');
}
}, true);
これは、ポップアップを閉じます。ポップアップではない画面の一部をクリックしたときに閉じてほしい。 ポップアップを開くためのコード:
function openpopup() {
popup.style.display = 'initial';
setTimeout(function(){
popup.classList.add('popup--open');
popup.style.boxShadow = '0 0 45px 2px white';
maincontainer.classList.add('blurfilter')}, 10);
for (let i = 0; i < listitems.length; i++) {
setTimeout(function() {
listitems[i].classList.add('visible');
}, 100);
}
}
私は
popupOpenbtn.addEventListener('click', openpopup);
]ボタンをHTML構造イベントリスナを追加しました: - 私は唯一のCSSクラスを使用することをお勧めし
<div class="maincontainer>
...all my page content...
</div>
<div class="popup">
...popup contents...
</div
関連するHTML –
を追加* *関連するHTMLを追加しました:) –