Vue.js下拉菜单组件使用方法详解


Posted in Javascript onOctober 19, 2019

本文实例为大家分享了Vue.js下拉菜单组件的具体实现代码,供大家参考,具体内容如下

效果

Vue.js下拉菜单组件使用方法详解

#### 入口页面 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前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript使用prototype定义对象类型(转)[
Dec 22 Javascript
javascript 类定义的4种方法
Sep 12 Javascript
jquery分页插件AmSetPager(自写)
Apr 15 Javascript
jQuery中wrapInner()方法用法实例
Jan 16 Javascript
jQuery性能优化技巧分析
Feb 20 Javascript
JavaScript事件类型中UI事件详解
Jan 14 Javascript
JS获取元素多层嵌套思路详解
May 16 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
Dec 29 Javascript
angularJS之$http:与服务器交互示例
Mar 17 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
Sep 04 Javascript
JS面向对象编程实现的拖拽功能案例详解
Mar 03 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
Jul 22 Javascript
vue实现二级导航栏效果
Oct 19 #Javascript
vue.js实现二级菜单效果
Oct 19 #Javascript
vue实现多级菜单效果
Oct 19 #Javascript
vue.js实现三级菜单效果
Oct 19 #Javascript
vue.js实现只能输入数字的输入框
Oct 19 #Javascript
Vue数字输入框组件的使用方法
Oct 19 #Javascript
微信小程序实现禁止分享代码实例
Oct 19 #Javascript
You might like
如何使用PHP获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
python逐行读取文件内容的三种方法
2014/01/20 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
详解python持久化文件读写
2019/04/06 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
Python实现微信机器人的方法
2019/09/06 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
主管会计岗位职责
2014/03/13 职场文书
海飞丝广告词
2014/03/20 职场文书
工程售后服务承诺书
2014/05/21 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
 分享一个Python 遇到数据库超好用的模块
2022/04/06 Python
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL