2011-10-28 7 views
0

の先頭に次のコードは、多くのことを行うことを目的としている特定のdivサイトの各セクションに1つずつあります - 各セクションはarticleです)、それは親のarticleであり、それはoffsetTopです。
3その後、我々は.popup_nextを​​).offsetTop値に30pxを追加し、スクロール位置がその範囲の外のどこかであれば、我々fadeIn()その後、私たちのスクロール現在のスクロール位置がoffsetTopより大きく$offsetHide未満であるため、場合、私たち$offsetHideことを呼び出しますdiv。jQueryのフェードイン()HTMLセクション

申し訳ありませんが、より具体的な詳細は不足していますが、次のコードは上記の効果を達成するためのものです。私はjavascriptのコンソールの中でそれをチェックして、エラーはありません。残念ながら、構文にはエラーはないようですが、何も起こっていません。誰でも自分のコードでエラーを見つけることができますか?この関数はウィンドウ全体のスクロールを探していない場合、エラーが$(".popup_next").scroll(function() {を使用してありますが、むしろのみ.popup_next要素のスクロール:

* EDIT:

は、下記を参照してください? *

* EDIT#2:ここでは動作しない効果の一例である:http://jsfiddle.net/XG24G、ここでは、私は、変数を削除し、それらを単純な静的値を作成する際に正常に動作し、それの例では、($(this)が使用されていないことを許可されましたそれは)誤ってすべてのトリガ:http://jsfiddle.net/UdXvM/1 *

$(window).scroll(function(){ 
     // gets the position of the window 
      var y = $(window).scrollTop(); 

     $(".popup_next").scroll(function() { 
      var $parentOffset = $(this).parent('article').offsetTop(); 
      var $hideOffset = $parentOffset + 30; 
      if(y > ($parentOffset) && y < ($hideOffset)) { 
       $(this).fadeIn('350');} 
      if(y > ($hideOffset)) { 
       $(this).fadeOut('500');} 
      if(y < ($parentOffset)) { 
       $(this).fadeOut('500');}    
     }); 
}); 
+0

はあなた 'フェードインする前に(' fadeOut'をか)隠さ.popup_next'していますか?可視の要素にフェードインするだけで効果がないからです。 –

+0

デフォルトではCSSによって 'display:none'が隠されています。この効果はスクロール位置が '$ parentOffset'と' $ hideOffset'値の間にあるときだけトリガされます。 – Brian

+0

これの例をjsfiddleに投稿していますか?答えは、それをしていない限りbelove。 – OptimusCrime

答えて

1

変更$(".popup_next").eachから$(".popup_next").scroll。つまり、そのコードは.popup_next要素がスクロールされたときにのみ実行されます。つまり、overflow: auto;があり、スクロールバーが表示され、その内容がスクロールしています。ウィンドウがスクロールされたときにそのコードが各.popup_nextに対して実行されるようにするには、.each()が必要です。

編集:また、.offsetTop()メソッドはありません。あなたは.offset().topが欲しいです。

http://jsfiddle.net/gilly3/Wcz3R/

編集:は、それはあなたのjsfiddleの修正では、この修正を作る:http://jsfiddle.net/gilly3/XG24G/1/

+0

これは、質問に対する私の最近の編集の後で私が考えていたものです。それを指摘してくれてありがとう、しかし残念ながら私はまだnullの応答を得ています:( – Brian

+0

@ブライアン - 'がありません。offsetTop() 'メソッドを呼び出します。私の編集を参照してください。 – gilly3

+0

ありがとう@ gilly3!私はそれがJSfiddleで動作しているのを見ましたが、私のローカル開発環境に実装すると、Google Chromeはエラーをスローしています: '6Uncaught TypeError:ヌルのプロパティ 'top'を読み取れません (匿名関数)script.js:6 e。 extend.eachjq​​uery.min.js:2 e.fn.e.eachjq​​uery.min.js:2 bscript.js:5 f.event.handlejquery.min.js:3 f.event.add.i。ハンドル.k' – Brian

関連する問題