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

togglevar値ではなく、要素属性に対してのみ機能します。この場合、次のように簡単に行うことができます。

_opacity = _opacity == 0 ? 1 : 0;

デモ

于 2012-10-03T19:27:59.077 に答える
0

jQueryにはすばらしい機能があります

.fadeToggle()

ドキュメンテーション。

于 2013-03-18T20:04:11.673 に答える