0

scrollTop()関数でfadeTo()を使用しようとしています。まず、フェードインとフェードアウトで試してみましたが、完璧に機能します。しかし、画像の真の高さを維持したい。css の不透明度を 0 に変更し、スクロール位置が 30 ~ 200 のときに画像を表示したいと考えています。

    <script type="text/javascript">
        $(document).scroll(function () {
            if ($(this).scrollTop() > 30 && $(this).scrollTop() < 200) {
                $("#amy").fadeTo("slow", 1);
            } else {
                $("#amy").fadeTo("slow", 0);
            }
        });
    </script>

CSS:

#amy {
    padding-top: 20px;
    margin-bottom: -50px;
    max-width: 155px;

    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    -moz-opacity: 0;
    -khtml-opacity: 0;
    opacity: 0;
}

if は、fadeIn $ fadeOut では機能しますが、fadeTo では機能しません。理由がわからない?スクロールトップではfadeToはサポートされていませんか?

4

1 に答える 1

1

なぜうまくいかないのかわかりませんfadeToが、試してみてくださいanimate()

<script type="text/javascript">
    $(document).scroll(function () {
        if ($(this).scrollTop() > 30 && $(this).scrollTop() < 200) {
            $("#amy").animate({opacity: 1}, "slow");
            return;
        } 
        $("#amy").animate({opacity: 0}, "slow");

    });
</script>

また、要素に他の CSS がないことを確認してください。みたいvisibility: hidden;なものとか。

于 2013-11-01T12:55:14.833 に答える