2016-08-05 1 views
0

イメージがビューポートに入ると、フェードインして左にスライドします。現時点でコードが適切に動作するようにすることに問題がありますが、jQueryがdivの高さに応じて動作するように変更する必要があるものも考えています。レスポンシブページの特定のポイントを一度通過した画像をアニメーション化してフェードインする方法は?

コード

以下のjQuery

<script> 
    $(window).one("scroll", function() { 
     var currentScroll = $(window).scrollTop(); 
     if (currentScroll >= 700) 
      $('#iphone').fadeIn(1000).animate({ 
       left: '200px' 
      });  
    }); 
</script> 

HTML

<div class="col-md-4"> 
    <img src="/images/iPhone-6.png" height="250px" width="auto" id="iphone"> 
</div> 

ありがとうございます!

+0

申し訳ありませんが、 '$(ウィンドウ):

#iphone{ position:absolute; } 

JS。 1?私はそれが「オン」であると考えており、私が知る限り、「電話」というイベントはありません。あなたが探しているのは '$(window).scroll(function(){// Do stuff});' – Santi

+0

申し訳ありませんが、電話は私のせいではありませんでした。それを反映するために変更を加えました。スクリプトを一度だけ実行したいので、.oneを使用しましたか? –

+0

ああ、理解された!下の私の編集された答えをチェックしてください - それはどんな助けですか? – Santi

答えて

1

$(window).one("phone"... - "phone"はjQueryの有効なイベントではないと思います。

、ページのスクロールは、おそらくこのような何かを探している場合に発生させるイベントを取得しようとしている場合:

<script> 
     var iphonePosition = $('#iphone').offset().top; 

     $(window).one("scroll", function() { 
     var currentScroll = $(window).scrollTop(); 
     if (currentScroll >= iphonePosition) 
      $('#iphone').fadeIn(1000).animate({ 
      left: '200px' 
     });  
     }); 
</script> 

.one()のご使用は、このイベントが起こることを意味しますのでご注意ください関数の中で何が起こっても、最初のスクロールだけです。これは動作を希望されない場合は、ちょうどそうのような別のifに機能の根性を$(window).scroll(function() {...を使用してラップを検討:

<script> 
     var iphonePosition = $('#iphone').offset().top; 

     $(window).on("scroll", function() { 

     var currentScroll = $(window).scrollTop(); 

     if (currentScroll >= iphonePosition) { 
      $('#iphone').fadeIn(1000).animate({ 
       left: '200px' 
      }); 

      $(window).off(); //Our fade-in was triggered, unbind the event 
     } 

     }); 
</script> 
+0

大変感謝しています。フェードインはうまくいかなかった。また、この場合の700を '(currentScroll> = 700)'の変数に自動的に調整して、iphone divとの差分を上に表示する最適な方法も知っていますか? –

+0

@JamesParsons私はあなたが何をしているのか理解していると信じています。私の編集をチェックアウトできますか? – Santi

-1

のポーリング

あなたがイメージがビューポートの内側にあるかどうかを確認したい場合はdocument.scrollTop。 イメージのドキュメントの場所を取得し、scrollTop値を減算する必要があります。

0

が期待される結果を達成するために、オプションの下に使用
1.追加位置を:idの絶対 - iPhoneを左に作ろう:200pxを表示する
2.oneの代わりに.on関数を使用すると、すべてのscrollTopでアニメーションが有効になり、一度だけ有効にならない。

HTML:

<div class="col-md-4 "> 
     <img src="http://www.w3schools.com/css/img_fjords.jpg" height="250px" width="auto" id="iphone"> 

</div> 

CSS:私はちょうど不慣れだ場合

 $(window).on("scroll", function() { 
     var currentScroll = $(window).scrollTop(); 
     if (currentScroll >= 100) { 
        $('#iphone').fadeIn(1000).animate({ 
      left: '200px' 
     }); 
     } 
     } 

); 

http://codepen.io/nagasai/pen/GqYXKJ

関連する問題