【问题标题】:How to animate bootstrap popover while showing?如何在显示时为引导弹出窗口设置动画?
【发布时间】:2014-09-20 12:04:44
【问题描述】:

我已经创建了我的自定义 bs 弹出框并且工作正常。我想在显示时对其进行动画处理。我怎样才能给我的自定义动画?代码很简单,如下图。

$("#userPopover").popover({
    trigger: "hover focus",
    delay: {show: 1000, hide: 400},
    placement: 'bottom',
    html: true,
    content: $(".tt-container").html(),
});

【问题讨论】:

  • 能否提供当前代码或演示?
  • @IrvinDomininakaEdward :您好,我已将代码置于问题中。谢谢
  • @IrvinDomininakaEdward :您好 Irvin,根据您的回答,我已经输入了代码,它非常有用,唯一的问题是,它第一次没有动画,而且每次我悬停时对于弹出框,它在控制台中给了我错误。请观看视频:youtu.be/DGJ7BPubVgo。谢谢:)
  • @IrvinDomininakaEdward:我正在使用引导程序 v3.2.0。我修改了小提琴:jsfiddle.net/8uKA5/5,代码的第一部分是防止在鼠标悬停时隐藏弹出框。我在代码的第一部分参考了jsfiddle.net/Zf3m7/463。你能帮我找出我的错误吗?编辑后的小提琴有我面临的同样问题并在控制台上给出同样的错误。
  • 非常感谢亲爱的,唯一的问题是它第一次没有为弹出框设置动画。你能帮我解决这个问题吗?

标签: twitter-bootstrap jquery-animate popover bootstrap-popover


【解决方案1】:

hide (How to customize Twitter Bootstrap popover hide animation) 上的类似问题开始,您可以扩展 Bootstrap 以处理 show 函数,并在其中触发自定义动画。

代码:

(function () {

    var orig = $.fn.popover,
        proto = $.extend({}, $.fn.popover.Constructor.prototype);

    $.fn.popover = function (options) {
        return this.each(function () {
            orig.call($(this), options);
            if (typeof options.show == 'function') {
                $(this).data('bs.popover').show = function () {
                    options.show.call(this.$tip, this);
                    proto.show.call(this);
                };
            }
        });
    }

})();

用法:

$("#userPopover").popover({
    trigger: "hover focus",
    delay: {
        show: 1000,
        hide: 400
    },
    placement: 'bottom',
    html: true,
    content: $(".tt-container").html(),
    show: function () {
        $(this).fadeIn('slow');
    }
});

演示:http://jsfiddle.net/IrvinDominin/8uKA5/

【讨论】:

  • Tooltip.prototype.show 已经存在,上面的引导原型完全是浪费时间。证明在这里 -> jsfiddle.net/cjXGE/3 基本上,只使用原生的 show ,但我感觉 OP 不仅想要隐藏效果,还想要一些不同的东西?
  • @davidkonrad nope,在您的情况下,该功能没有被触发
  • @davidkonrad:欧文就在这里。不会触发原生显示/隐藏。
  • @Dharmraj 我会尽快查看第一个未触发的动画
  • @IrvinDomininakaEdward:你真好。你真的帮了我很多:) 如果你得到一个解决方案,请告诉我一个解决方案:) 再次感谢。
猜你喜欢
  • 2014-02-02
  • 2021-12-07
  • 2017-10-28
  • 2020-08-01
  • 1970-01-01
  • 2015-02-16
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多