1

我写了一个 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);
        };
4

3 回答 3

7

jQueryanimate为您尝试做的事情提供了一个快捷方式:

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

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

于 2012-10-03T19:37:47.617 回答
1

toggle仅适用于元素属性,不适用于 var 值。这种情况下您可以简单地执行以下操作。

_opacity = _opacity == 0 ? 1 : 0;

演示

于 2012-10-03T19:27:59.077 回答
0

jQuery有甜蜜的功能

.fadeToggle()

文档。

于 2013-03-18T20:04:11.673 回答