2016-07-26 10 views
1

私はこの方法を理解できないようです。JSは動作しません。 scrollfunctionは機能しますが、非表示にはなりません。また、コードの行数を減らしてこれを行う方法はありますか? .down-arrowfade out50pxの後に入力し、50pxの後に非表示にするとクリックできません。私のサイトとコードペンで作業していましたが、その後は無作為に動作しなくなりました。コードは明らかに間違っている、何とかそれは...働いJavascript Optimization

JSた:

$(window).scroll(function() { 
    $(".down-arrow").css("opacity", 1 - 
    $(window).scrollTop()/50); 
}); 

$(window).scroll(function() { 
    $(".down-arrow").hide(fast); 
    $(window).scrollTop() > 50); 
}); 

[編集]ここで

である私は明白な構文エラーや提案にアドバイスを書いた新しいJS私はとにかくやって期待していた1体、でそれをすべてを配置します

$(window).scroll(function() { 
    $(".down-arrow").hide("fast"); 
    $(".down-arrow").css("opacity", 1 - 
     $(window).scrollTop()/50); 
}); 

しかし、今、私は使用はは50pxマークの上に、トップまで戻ったときに矢印が表示したいです。

+1

を試してみてください構文エラーですか? – Bergi

+0

* "コードの行数を減らしてこれを行う方法はありますか?" * - 2つの別々のスクロールハンドラを定義する必要はありません。両方の関数の本体を '$ (ウィンドウ).scroll() ' – nnnnnn

+0

はいlol @bergiしかしそれ以上です。 – ERIC

答えて

5

さんのまず最初の、funcitionを登録する必要はありません二回

var element = $(".down-arrow"); 
$(window).scroll(function() { 
    if($(window).scrollTop() > 50){ 
    element.css("opacity","0"); 
    if(!element.hasClass("hidden")){ 
    element.addClass("hidden"); 
    } 
    }else{ 
    $('.down-arrow').removeClass("hidden") // if there is nothing, nothing to remove 
    $(".down-arrow").css("opacity", 1 -$(window).scrollTop()/50); 
    } 
}); 

いくつかのCSSの変更:

.down-arrow.hidden{ 
    display:none; 
} 
.down-arrow:hover { 
    //you have to overwrite inline opacity , which js makes.. 
    opacity: 1 !important; 
} 

期待通りに動作するはずですさて、ので、多分:)

+0

私はリンク上でこれをやっているので、不透明度を変更するだけでは機能しません。隠されている必要があります。さもなければ、それはまだクリック可能です。 – ERIC

+0

あなたのニーズに合わせて編集しました –

+0

あなたは男です! :) – ERIC

関連する問題