0

我尝试在 scrollTop() 函数中使用 fadeTo()。首先,我尝试使用fadeIn 和fadeOut,效果很好。但我想保持图像的真实高度。当滚动位置在 30 到 200 之间时,我将我的 css 中的不透明度更改为 0 并希望显示图像。

    <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。不知道为什么?scrollTop 不支持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 回答