2016-11-28 14 views
3

マウスが画面を離れると、次のポップアップが表示されます。私はこれを一度だけ表示するためにクッキーなどを必要とします(私はちょっとした初心者ですが)、これをコードに組み込む方法を考えることはできません。JQuery - 一度だけポップアップを表示

// Exit intent 
function addEvent(obj, evt, fn) { 
    if (obj.addEventListener) { 
     obj.addEventListener(evt, fn, false); 
    } 
    else if (obj.attachEvent) { 
     obj.attachEvent("on" + evt, fn); 
    } 
} 

// Exit intent trigger 
addEvent(document, 'mouseout', function(evt) { 
    if (evt.toElement == null && evt.relatedTarget == null) { 
     $('.lightbox').slideDown(); 
    }; 
}); 

// Closing the Popup Box 
$(document).ready(function(){ 
    $('#close').click(function(){ 
     $('.lightbox').slideUp(); 
    }); 
}); 

あなたがここにアクションでコードを表示することができます。http://championcontainersnz.com/buy_estimate

をご提供することができます任意の助けいただければ幸いです。ありがとう。

+0

クッキー。グローバル変数 'var hasLeftScreen = false;'を作成し、最初にそれをtrueに設定します。あなたのifにその条件を追加してください。 – nurdyguy

+0

もう一度表示しないか、そのページで_onceだけを表示しますか? – Yatrix

+0

ポップアップが表示されたら、クッキーを作成し、後でクッキーが存在するかどうかを確認してください。 – Aleksandar

答えて

3

次の例では、あなたが提供したコードをあなたに表示されます。ボックスがポップアップしたかどうかを格納する変数が必要です。

var isPopped = false; 
 
// Exit intent 
 
function addEvent(obj, evt, fn) { 
 
    if (obj.addEventListener) { 
 
    obj.addEventListener(evt, fn, false); 
 
    } else if (obj.attachEvent) { 
 
    obj.attachEvent("on" + evt, fn); 
 
    } 
 
} 
 

 
// Exit intent trigger 
 
addEvent(document, 'mouseout', function(evt) { 
 
    if (evt.toElement == null && evt.relatedTarget == null && isPopped == false) { 
 
    $('.lightbox').slideDown(); 
 
    isPopped = true; 
 
    }; 
 
}); 
 

 
// Closing the Popup Box 
 
$(document).ready(function() { 
 
    $('#close').click(function() { 
 
    $('.lightbox').slideUp(); 
 
    }); 
 
});
.lightbox { 
 
    border: solid 1px #000; 
 
    padding: 50px; 
 
    position: absolute; 
 
    top: 50px; 
 
    left: 150px; 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="lightbox">Hello There 
 
<button id="close">Close Me</button></div>

+1

ブリリアントジェイソン。できます!この答えを提供する時間を取ってくれてありがとう、ありがとう。シンプルだが効果的。よくやった。 – N00b

+0

@ N00bありがとう:) – CodeLikeBeaker

1

私はjQueryの専門家ではありませんが、解決方法はウィンドウ変数を作成するのと同じくらい簡単です。

関数の外で、initallyこの定義:ポップアップコードに

window.hasPoppedUp = false; 

if(!window.hasPoppedUp) { 
    //do stuff 
    window.hasPoppedUp = true; 
} 
+0

ありがとうハリー。申し訳ありませんが、痛みはありますが、このコードを元のコードにどのように組み込むことができますか? – N00b

関連する問題