1

jQuery の通知プラグインを作成しています。プラグインの一部として、通知は一定時間後に自動的に消えるように設定できます。なんらかの理由で、フェードアウトするだけで、slideUp期待どおりにはなりません。私は何を間違っていますか?

$('#' + plugin.uniqID)
    .delay(plugin.settings['autoclose'])
    .queue(function () {
        $(this)
            .fadeOut({ duration: plugin.settings['speed'], queue: false })
            .slideUp(plugin.settings['speed']);
        });
4

3 に答える 3

1

adeneoは正しかったので、 .dequeue()を呼び出す必要があります

http://jsbin.com/opiluy/1/edit

$('#' + plugin.uniqID)
    .delay(plugin.settings['autoclose'])
    .queue(function () {
        $(this)
            .fadeOut({ duration: plugin.settings['speed'], queue: false })
            .slideUp(plugin.settings['speed']);
        }).dequeue();
于 2012-11-02T16:33:39.850 に答える
1

別の提案として、animateを使用して、animate関数内の高さと不透明度を変更することはできませんか?そのようです:

$(this).animate({height: "whateverheight"、opacity: "whateveropacity"}、whateverspeed);

于 2012-11-02T16:25:30.763 に答える
1

queue: false両方のアニメーション呼び出しを指定するだけです。これはうまくいきます。

$('#' + plugin.uniqID)
.delay(plugin.settings['autoclose'])
.queue(function () {
    $(this)
        .fadeOut({ duration: plugin.settings['speed'], queue: false })
        .slideUp({ duration: plugin.settings['speed'], queue: false });
    });
于 2012-11-02T16:37:43.713 に答える