現在、サイト離脱時にバナーを表示したく、jQueryで下記のようなコードを組んでいます。
jQuery
1jQuery(function($){ 2 var flg = false; 3 var scrollTop; 4 5 $(document).on('click', 'a', function(){ 6 flg = true; 7 }); 8 9 // ページ離脱時にバナーを表示 10 $(window).on("beforeunload", function(e){ 11 12 // flgがtrueのときは、サイト内にあるリンクなので何もしない 13 if( flg === true ) { 14 flg = false;// flgをfalseに戻しておく 15 } else { 16 var $this = $('.leave-bnr-area'); 17 var width = $(window).width(); 18 var high = $(window).height(); 19 20 $this.css('min-height', high + 'px'); 21 22 scrollTop = $(window).scrollTop();// モーダルが開いたときのポジションを記録 23 $('.leave-bnr-area .leave-bnr-wrap a').css({ 24 'top' : ( high - 250 ) / 2, 25 'left' : ( width - 300 ) / 2, 26 }); 27 $this.addClass('lb-open'); 28 $this.animate({opacity: 'show'}); 29 $('body').addClass('noscroll').css('top', -scrollTop);// スクロールを固定 30 31 e.preventDefault(); 32 33 return false; 34 } 35 }); 36 37 // モーダルの背景をクリックしたら、モーダルを閉じる 38 $('.leave-bnr-bg').on('click touchstart', function() { 39 $('.leave-bnr-area').removeClass('lb-open'); 40 $('.leave-bnr-area').animate({opacity: 'hide'}); 41 $('body').removeClass('noscroll').css({ 'top' : 0 });// 現在のスクロール位置から、0に戻す 42 window.scrollTo( 0, scrollTop );// モーダルを閉じたときに記録した場所までスクロールする 43 }); 44});
HTML
1<div class="leave-bnr-area"> 2 <div class="leave-bnr-bg"></div> 3 4 <div class="leave-bnr-wrap"> 5 <a href="#"><img src="./js/banner.png"></a> 6 </div> 7</div>
CSS
1body.noscroll { 2 overflow: hidden; 3 position: fixed !important; 4 width: 100%; 5} 6.leave-bnr-area { 7 display: none; 8 position: absolute; 9 top: 0; 10 width: 100%; 11 height: 100%; 12 z-index: 99999; 13} 14.leave-bnr-area.lb-open { 15 display: block; 16} 17.leave-bnr-area .leave-bnr-bg { 18 position: absolute; 19 left: 0; 20 top: 0; 21 width: 100%; 22 height: 100%; 23 background-color: rgba(0, 0, 0, 0.85); 24} 25.leave-bnr-area .leave-bnr-wrap { 26 text-align: center; 27 position: relative; 28} 29.leave-bnr-area .leave-bnr-wrap a { 30 position: fixed; 31 margin: auto; 32 display: inline-block; 33}
これで、サイト離脱時にモーダルウインドウでバナーが表示されるようになりました。
ですが、バナーが表示される前に、Chromeでは「このサイトを離れてもよろしいですか?」というダイアログを表示されてしまいます。
こちらを非表示に(スキップ)して、バナーを表示させたいのですが、ブラウザの挙動のようなので、そもそもそれが可能なのかどうかもわからず…
もし可能なのでしたら、その方法もご教示いただけますと幸いです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。