【问题标题】:Using Vue v-tooltip How to get tooltip placement (which is exposed as x-placement attribute on tooltip) and set class based on this使用 Vue v-tooltip 如何获取工具提示放置(在工具提示上显示为 x-placement 属性)并基于此设置类
【发布时间】:2019-11-14 16:10:22
【问题描述】:

使用 v-tooltip 指令。当工具提示打开时,popper.js 会尝试根据周围空间找到合适的位置(至少我是这样理解的),并将这些信息暴露在 x-placement 属性上。如何获取位置信息并在 Vue 中使用它 - 例如将其公开为 css 类(原因之一是某些浏览器(例如 IE)在 css 属性选择器方面存在性能问题)。

我设法使用 popper.js 自定义修饰符让我的案例工作,但我想知道是否有更多 Vue 方法来做到这一点。

https://jsfiddle.net/xhwL2sme/1/

// see https://popper.js.org/popper-documentation.html#modifiers..applyStyle
let applyStyleModifierWeight = 900;

new Vue({
  el: '#app',
  data: function() {
    return {
      message: 'Hello Vue.js!',
      tooltip: {
        content: "Greetings",
        popperOptions: {
          modifiers: {
            addPlacementClass: {
              order: applyStyleModifierWeight - 1,
              enabled: true,
              fn: data => {
                console.log("addPlacementClass", data);
                data.attributes.class = 'tooltip vue-tooltip-theme ' + data.placement;
                return data;
              }
            }
          }
        }
      }
    }
    }
});

【问题讨论】:

  • 一种更 Vue 的方式是将 Popper.js 重写为 Vue 指令。但由于我们使用的是通用 DOM 库 - 我们必须忍受(解决方法)它的怪癖。

标签: vue.js popper.js v-tooltip


【解决方案1】:

只是想将其标记为已回答,以帮助可能遇到相同问题的人。可能的解决方案已包含在问题中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    相关资源
    最近更新 更多