2016-04-13 10 views
0

スクロールバーのメニューにロゴ画像があるので、スクロールするときにCSSのトランジションを使って画像の幅を変更しようとしていますが、jqueryウィンドウのスクロールでは機能しません私はロゴ画像の上に置くと、ロゴ画像にCSSクラスは、それがウィンドウのスクロールで画像の幅を変更できない

私のコードのCSS

.logo img 
{ 
    width: 100%; 
    transition:width 1s ease; 
    -moz-transition: width 1s ease; 
    -ms-transition: width 1s ease; 
    -webkit-transition: width 1s ease; 
    -o-transition: width 1s ease; 
} 

.transition , .logo img:hover{ 
    width: 50%; 
    transition:width 1s ease; 
    -moz-transition: width 1s ease; 
    -ms-transition: width 1s ease; 
    -webkit-transition: width 1s ease; 
    -o-transition: width 1s ease; 
} 

jsのコード

$j = jQuery.noConflict(); 

$j(function(){ 
    $j(window).on("scroll", function() { 
     if ($j(this).scrollTop() > 100) { 
      $j('.logo img').addClass('transition'); 
      console.log($j(this).scrollTop()); 
     } else { 
      $j('.logo img').removeClass('transition'); 
      console.log('cvc'); 
     } 
    }); 
}); 

してください任意のヘルプや多くのおかげで働きます あらかじめ。

+0

スクロールするときにコンソールに実際に数値があふれていますか?そうでなければ、あなたのイベントリスナーは発砲していません。 – Paul

+0

@Paulはいコンソールの数値を取得しています – Fadi

+0

'transition 'クラスがに追加されていますか? 'width:100%'が '.transition'スタイルを上書きするので、' width:50% 'がストライクしていないかどうかをチェックします。' .logo img'セレクタがより正確です。その場合、 '.transition、.logo img:hover'を' .logo img.transition、.logo img:hover'に変更する必要があります。 –

答えて

1

あなたは何かを望みますlike this

セレクタを少し変更しました。 .logo imgの継承のため、.logo imgのプロパティを消去するには、.transitionはありませんでした。

.logo img 
{ 
    width: 100%; 
    transition:width 1s ease; 
    -moz-transition: width 1s ease; 
    -ms-transition: width 1s ease; 
    -webkit-transition: width 1s ease; 
    -o-transition: width 1s ease; 
} 

.logo .transition{ 
    width: 50%; 
    transition:width 1s ease; 
    -moz-transition: width 1s ease; 
    -ms-transition: width 1s ease; 
    -webkit-transition: width 1s ease; 
    -o-transition: width 1s ease; 
}