src_js/iconolab-bundle/src/components/editor/mixins/tooltip.js
changeset 415 c4b700679964
parent 323 55c024fc7c60
child 539 08e2513dbc2f
equal deleted inserted replaced
414:49a753808505 415:c4b700679964
     5     placement: 'auto',
     5     placement: 'auto',
     6     container: 'body',
     6     container: 'body',
     7     trigger: 'manual',
     7     trigger: 'manual',
     8     html: true,
     8     html: true,
     9     title: '',
     9     title: '',
    10     viewport: '.cut-canvas',
       
    11     content: '',
    10     content: '',
    12 }
    11 }
    13 
    12 
    14 export default {
    13 export default {
    15     methods: {
    14     methods: {
    35             popoverOptions.content = vm.$el;
    34             popoverOptions.content = vm.$el;
    36 
    35 
    37             var target = new Snap(this.getTooltipTarget());
    36             var target = new Snap(this.getTooltipTarget());
    38 
    37 
    39             var $el = $(target.node);
    38             var $el = $(target.node);
    40             $el
    39 
    41                 .popover(popoverOptions)
    40             $el.popover(popoverOptions);
    42                 .popover('show');
       
    43 
    41 
    44             this.$on('drag:start', function() {
    42             this.$on('drag:start', function() {
    45                 $el.popover('hide');
    43                 $el.popover('hide');
    46             });
    44             });
    47             this.$on('drag:end', function() {
    45             this.$on('drag:end', function() {
    48                 $el.popover('show');
    46                 $el.popover('show');
    49             });
    47             });
    50 
    48 
    51             $el.on('shown.bs.popover', (e) => {
    49             $el.on('shown.bs.popover', (e) => {
    52                 var $tip = $el.data('bs.popover').$tip;
    50                 var $tip = $el.data('bs.popover').tip();
    53                 $tip.find('input[name="title"]').focus();
    51                 $tip.find('input[name="title"]').focus();
       
    52                 // Fixes tooltip positioning when page is scrolled
       
    53                 // See https://github.com/twbs/bootstrap/issues/21855
       
    54                 if (document.body.scrollTop > 0) {
       
    55                     $tip.css('top', parseInt($tip.css('top'), 10) + document.body.scrollTop);
       
    56                 }
    54             });
    57             });
       
    58 
       
    59             $el.popover('show');
    55         },
    60         },
    56         destroyTooltip: function() {
    61         destroyTooltip: function() {
    57             var target = new Snap(this.getTooltipTarget());
    62             var target = new Snap(this.getTooltipTarget());
    58 
    63 
    59             var $el = $(target.node);
    64             var $el = $(target.node);