<template><div class="pop-over"><a @click="toggleOpen" class="pop-button" href="javascript: void(0);">{{ buttonText }}你好呀</a><ul v-clickoutside="close" v-show="open" class="pop-list"><slot><li>1</li></slot></ul></div>
</template><script>
export default {name: "PopOver",props: ["buttonText"],data() {return {open: false,};},methods: {toggleOpen: function () {this.open = !this.open;},close: function (e) {console.log("close", e.target);if (this.$el.contains(e.target)) return;this.open = false;},},directives: {clickoutside: {bind: function (el, binding, vnode) {console.log(el, binding, vnode);console.log(vnode.context);const documentHandler = function (e) {if (!vnode.context || el.contains(e.target)) return;binding.value(e);};setTimeout(() => {document.addEventListener("click", documentHandler);}, 0);},},},
};
</script><style scoped>
.pop-over {position: relative;width: 100px;height: 100px;background-color: rgb(161, 16, 16);
}
.pop-button {position: relative;width: 100%;height: 100%;text-decoration: none;color: inherit;
}
.pop-list {position: absolute;left: 0;top: 0;
}
.pop-list li {width: 100%;height: 100%;padding: 8px 3px;list-style: none;
}
</style>

vue中实现element的Popper功能相关推荐

  1. vue中手写一个放大镜功能

    vue中手写一个放大镜功能 有的时候需要对图片进行放大,类似于电商的商品放大功能,于是在这个想法上写了一个放大镜的功能,并且在放大镜的基础上新添加了一些小功能,下面开始吧! 放大镜是封装的组件的形式, ...

  2. vue中可编辑div添加@功能

    简介 1.有默认值情况下,光标自动定位到最后 2.按@键,或者@+shift组合键,可添加被@姓名 3.可整体删除@姓名 4.在光标位置插入指定html元素 如图所示 源码(复制另存txt,修改.ht ...

  3. vue中实现Excel导入导出功能

    导入Excel功能 前置条件: 依赖包xlsx npm install xlsx -S 这里提供一个现成的在vue中导入Excel的功能(原作者-花裤衩),代码在最下面,可直接复制. 创建一个文件夹, ...

  4. vue中如何实现图片放大镜功能

    vue中图片放大镜功能 1.在vue项目中不可避免的会做一个图片放大镜的弄能(例如.商城.店铺等),今天同事问了这个功能恰好以前写过,因此记录一下. 2.废话不多说直接上代码: 父组件中: <t ...

  5. vue中后端做Excel导出功能返回数据流前端如何做处理

    项目中有一个导出功能的实现,用博客来记录一下.因为需求对导出表格的数据格式和样式有要求,所以这个导出功能放到后端来做,而且后端返回的是数据流,所以需要处理成想要的表格并导出来. 先看下效果图: 页面效 ...

  6. 如何在vue中实现文件预览功能

    文件流 如何将各种文件的文件流(blob)转化为线上可以直接预览的数据,这里简单介绍四种不同类型的文件预览.分别是pdf,docx,xlsx,jpg/png/jpeg等.有一个事情是需要重点注意的,文 ...

  7. Vue中如何实现代码高亮功能?

    目录 1.下载依赖 2.在main.js文件中导入包 3.同样是在main.js文件中自定义一个指令 4.在vue文件中使用指令 5.效果展示 1.下载依赖 npm install highlight ...

  8. vue中获取短信验证码功能IOS手机问题

    vue使用中发现了一个问题,由于ios手机获取短信验证码后,验证码会直接显示在键盘上,点击键盘上的验证码即可给对应的input赋值,但是在项目开发中发现输入框的取值为空 经过排查是因为通过v-mode ...

  9. vue中添加语音播报的功能

    1:首先把我们的静态资源文件加入到前端工程项目当中 我这里mp3文件就是要播报的语言文件 2: 页面中加入标签 <!-- src 后面的链接是我保存在static文件下的一段报警声 --> ...

最新文章

  1. 【转】Android 快捷方式的创建
  2. struts2中action向action之间传数据和action向jsp传数据理解
  3. android分享到指定应用,Android调用系统分享,指定某些应用来分享
  4. 直播 | 帝国理工王剑虹:配电网中用多智能体强化学习进行的主动电压控制
  5. Kryo序列化实现源码分析
  6. Nginx应用场景之负载均衡
  7. 操作系统(10)-虚拟内存
  8. OUTLOOK 的PST文件和OST文件的区别
  9. 这才是智能家居真正的现状
  10. 在Code First中自动创建Entity模型
  11. 【计算机网络】数据链路层(超多图详析)
  12. Timer的源码分析
  13. 人工智能专业志愿该如何填报?
  14. Viddy上视频营销最成功的6家公司
  15. SAP FICO-模块 关于固定资产年结和折旧的问题
  16. Chinese Segmentation Introduction
  17. 计算方法 差商与牛顿插值
  18. eclipsepython插件_Eclipse安装配置PyDev插件
  19. 有趣的linux LS命令
  20. 近视也可以用计算机来算,近视眼度数怎么算的 5个方法教你掌握

热门文章

  1. 5-2 文件系统及其功能
  2. Invalid bound statement (not found)解决
  3. 打造 Win10 终极开发环境
  4. 【OSChina-MoPaaS应用开发大赛】三国梦(微型匿名社交)
  5. 代词总结——day2
  6. 手机越狱:探索自由与风险的边界
  7. 小崔的外企英语日记之笔记
  8. 【新版API】实现第三方应用钉钉扫码登录
  9. 言语的暴力胜过一切枪支弹药
  10. 服务器授权文件在什么地方,windows CAL授权许可是什么?