2012-01-26 14 views
0

ライトボックスを作成するにはcolorboxを使用しています。現在、私は最初のページの読み込み時に、ユーザーにライトボックスが表示されます。 Cookieが削除されるため、ユーザーはこのライトボックスを15日間以上表示しません。私はライトボックスがdiv#cooler-navにスクロールするときだけロードされるようにしたいと思います。Lightboxをトリガーする方法特定のDivにスクロールした後にロードする

私のコードは、現在、次のようになります。

<script type="text/javascript"> 
    jQuery(document).ready(function(){ 
    if (document.cookie.indexOf('visited=true') == -1) { 
     var fifteenDays = 1000*60*60*24*15; 
     var expires = new Date((new Date()).valueOf() + fifteenDays); 
     document.cookie = "visited=true;expires=" + expires.toUTCString(); 
     $.colorbox({width:"700px", inline:true, href:"#subscribepop"}); 
     } 
}); 
</script> 

P.S.私はライトボックスの能力を15日に一度しか維持しないことを望む。

答えて

0
$(window).bind('scroll.showcolorbox', function() { 
    if ($('body').scrollTop()+$(window).height() > $('#cooler-nav').offset().top) { 
     $.colorbox({...}); 
     $(window).unbind('scroll.showcolorbox'); 
    } 
}); 
012:ここで

if ($special.offset().top <= ($('body').scrollTop() + $(window).height())) { 

は、このためのデモです

+0

@ジャスパーはすでにすべてを説明しています...(アンバインドを除くと、カラーボックスを1回だけ表示します) – ori

+0

共有するコードを実行してライトボックスを取得できますdiv#cooler-navに達するとロードしてください。アンバインドも素晴らしい作品です。しかし、私はクッキーのことを正しく理解することはできません。 ライトボックスの表示は15日に1回のみです。 マイコードへのリンク:http://pastebin.com/2VFKquAp –

+0

コードはFirefox 9.0.1では機能しません –

1
$(function() { 
    var $special = $('#cooler-nav'); 
    $(window).on('scroll', function() { 
     if ($special.offset().top <= $('body').scrollTop()) { 
      console.log('You have reached the `#special` element'); 
     } else { 
      console.log('You aren\'t quite there yet.'); 
     } 
    }); 
}); 

何をしてwindowオブジェクト(または任意のオブジェクト、すなわち、スクロール・バーがあり、スクロールされている)のためにscrollイベントにイベントハンドラをバインドしています。このイベントハンドラでは、参照する要素の先頭のオフセットを取得し、windowがその高さまでスクロールされているかどうかを確認します。ここで

はデモです:http://jsfiddle.net/wxeFP/(あなたが#cooler-nav要素を過ぎてスクロールすると、メッセージの変更を見るためにあなたのコンソールを見る)

あなたは#cooler-nav要素が視野に入ってくるだけのようなコードを実行したい場合は、追加することができますbodyscrollTop値にviewportの高さ:http://jsfiddle.net/wxeFP/1/

+0

下記の共有コードを実行して、div#cooler-navに達するとライトボックスをロードできます。アンバインドも素晴らしい作品です。しかし、私はクッキーのことを正しく理解することはできません。私がしたいことは、ライトボックスを15日に1回しか表示させないことです。私のコードにリンク:pastebin.com/2VFKquAp –