效果

#### 入口页面 index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>可从外部关闭的下拉菜单</title><link rel="stylesheet" type="text/css" href="style.css">
</head>
<body><div id="app" v-cloak><div class="main" v-clickoutside="handleClose"><button @click="show = !show">点击显示下拉菜单</button><div class="dropdown" v-show="show"><p>下拉框的内容,点击外面区域可以关闭</p></div></div></div><script src="https://unpkg.com/vue/dist/vue.js"></script><script src="clickoutside.js"></script><script src="index.js"></script>
</body>
</html>

根实例 index.js

var app = new Vue({el: '#app',data: {show: false},methods: {handleClose () {this.show = false;}}
});

下拉框组件 clickoutside.js

Vue.directive('clickoutside',{bind: function (el, binding, vnode) {function documentHandler(e) {if(el.contains(e.target)){return false;}if(binding.expression){binding.value(e);}}el.__vueClickOutside__ = documentHandler;document.addEventListener('click',documentHandler);},unbind: function (el, binding) {document.removeEventListener('click', el.__vueClickOutside__);delete el.__vueClickOutside__;}
});

样式表

[v-cloak]{display: none;
}
.main{width: 125px;
}
button{display: block;width: 100%;color: #fff;background-color: #39f;border: 0;padding: 6px;text-align: center;font-size: 12px;border-radius: 4px;cursor: pointer;outline: none;position: relative;
}
button:active{top:1px;left: 1px;
}
.dropdown{width:100%;height: 150px;margin: 5px 0;font-size: 12px;background-color: #fff;border-radius: 4px;box-shadow: 0 1px 6px rgba(0,0,0,.2);
}
.dropdown p{display: inline-block;padding: 6px;
}

Vue.js--下拉菜单组件相关推荐

  1. vue.js下拉菜单渲染数据

    首先获取后台数据 <script>var apps = new Vue({el: '#table',data: {selectValue: '',editlist: [],},mounte ...

  2. vue动态生成下拉框_解决vue动态下拉菜单 有数据未反应的问题

    问题出现在当时后台数据会返回到data中但是没有出现下拉菜单,查询资料 发现 Vue的this理解有误 jsp 下拉菜单 {{item.plantModelName}} JS new Vue({ el ...

  3. Bootstrap学习-详解Bootstrap下拉菜单组件

    转载:https://www.cnblogs.com/jnslove/p/5421187.html bootstrap框架中的下拉菜单组件是一个独立的组件,根据不同的版本,他对应的文件: less 对 ...

  4. 自适应分辨率可扩展二层JS下拉菜单

    1. S下拉菜单原理 下拉菜单实际上就是在开始的时候显示一级或者说是主菜单(图一).当触发条件(例如:鼠标移动到上面时)显示次级菜单(图二). 图一 图二 那么如何实现这样的效果呢.其实很简单.所有的 ...

  5. Vue封装下拉框组件时,为document绑定原生事件addEventlistener(click“),切换页面之后事件还未被摧毁...

    1 <script> 2 export default { 3 props: ["lists"], 4 data() { 5 return { 6 isactive: ...

  6. vue封装上拉菜单组件_Vue的灵活的lil上下文菜单组件

    vue封装上拉菜单组件 vue-lil上下文菜单 (vue-lil-context-menu) A flexible context menu component for Vue. Pass it a ...

  7. 抗疫逆行者网页作业 感动人物网页代码成品 网页作业带JS下拉菜单 最美逆行者网页模板 致敬疫情感动人物网页设计制作

    大学生抗疫逆行者网页作业成品 作品介绍 作品技术 效果预览 网页下载 作品介绍 逆行者感动人物网页作品包含1个首页5个子页面,共计6个页面,作品采用大学生基础水平制作. 作品技术 主要知识点应用:JS ...

  8. 使用vue来开发一个下拉菜单组件(1)

    一.新建demo工程 vue init webpack-simple demo 添加src/mixins/emitter.js文件(见前几篇博文) 安装font-awesome字体库: cnpm in ...

  9. 使用vue来开发一个下拉菜单组件(2)

    二.组件设计 接下来是开发选择框组件,首先需要自定义一个点击外部使下拉菜单关闭的指令: export default {bind(el, binding, vnode) {function docum ...

  10. 小程序下拉菜单组件(含多层筛选)

    图例中筛选是另外一个组件 一般在筛选的场景中需要使用下拉菜单,动态设置筛选条件,比如淘宝,京东的产品筛选列表,携程的旅游目的地的筛选列表. 支持 配置化设置弹层内容 支持动态刷新弹层内容 支持动态修改 ...

最新文章

  1. android onLayout死循环
  2. ie6多文件上传_一个好的“文件上传”功能必须要注意的这些点你都知道吗?
  3. 苹果系统里面 dictionary 如何加入中文词典
  4. 调试记录- error: #error “must enable c++17“
  5. LeetCode-Add Two Numbers
  6. python内置类型_Python内置对象类型
  7. 说说说vue.js中的组
  8. SVN工作笔记006---解决TortoiseSVN中out of date问题的一个方法
  9. 【ActiveReports 大数据分析报告】用数据分析的手段告诉你,复联4有多火爆?
  10. gitlab syntax highlighting theme
  11. 三个一工程_C语言阶段第二阶段部分程序整理
  12. Layui 个人博客网站源码 (带运行文档)
  13. 怎么完全卸载赛门铁克_赛门铁克专用卸载工具
  14. websocket传输数据大小限制_WebSocket传输超过126字节数据的方法
  15. GUI编程入门到游戏实战
  16. 披上了SSL战甲的HTTP战士——HTTPS
  17. java面试全套清单_Java 全套面试题 PDF 下载
  18. swoft2 小白教程系列-进程篇
  19. 有关计算机知识的活动总结,计算机兴趣小组活动总结范文
  20. 交换机中用户权限级别

热门文章

  1. Java--捕鱼达人
  2. winbox常用功能
  3. PHP项目中使用 Markdown编辑器
  4. 【学者风采】沈向洋 清华大学
  5. 计算机科学拒签概率高吗,美签拒签率较高的5类人!你上榜了吗?
  6. 工程技术专业的数字化转型促进技术创新
  7. Twitter实现每秒处理3000张(20G)图片的优化实践
  8. 小孩子竟然也会得抑郁症,孩子得抑郁症怎么办?
  9. 无法安装某些更新 Windows XP 安全更新程序 (KB2686509)
  10. 计算机快捷键汇总——让手指在键盘上跳跃起来