jQuery使用animate函数切换不透明度

时间:2012-10-03 19:11:28

标签: jquery

我写了一个jquery函数,并从那里尝试使用animate函数切换不透明度,但我的代码不起作用。任何人都可以告诉我哪里是错误。感谢

            jQuery.fn.blindToggle = function (speed, easing, callback) {
            var _opacity = 0;
            var h = this.height() + parseInt(this.css('paddingTop')) + parseInt(this.css('paddingBottom'));
            $(this).toggle(function () {
                _opacity = 0;
            },
            function () {

                _opacity = 1;
            });
            alert(_opacity);
            return this.animate({ opacity: _opacity,
                marginTop: parseInt(this.css('marginTop')) < 0 ? 0 : -h
            }, speed, easing, callback);
        };

3 个答案:

答案 0 :(得分:6)

jQuery's animate有一个快捷方式,可用于您尝试执行的操作:

$(this).animate({"opacity": "toggle"});

然后你不需要自己实现那个逻辑。

答案 1 :(得分:1)

toggle仅适用于元素属性,不适用于var值。这种情况你可以简单地做到以下几点。

_opacity = _opacity == 0 ? 1 : 0;

演示

答案 2 :(得分:0)

jQuery具有甜蜜的功能

.fadeToggle()

Documentation.