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 动态访问JSon元素示例代码
Aug 30 Javascript
jquery比较简洁的软键盘特效实现方法
Mar 19 Javascript
JS获取网页图片name属性的方法
Apr 01 Javascript
AngularJS过滤器filter用法实例分析
Nov 04 Javascript
浅析script标签中的defer与async属性
Nov 30 Javascript
再谈Angular4 脏值检测(性能优化)
Apr 23 Javascript
关于js对textarea换行符的处理方法浅析
Aug 03 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
Sep 05 Javascript
微信小程序云开发实现增删改查功能
May 17 Javascript
Vue.js组件props数据验证实现详解
Oct 19 Javascript
js与jquery获取input输入框中的值实例讲解
Feb 27 jQuery
JS实现长图上下滚动效果
Mar 19 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
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
js计算页面刷新的次数
2009/07/20 Javascript
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
Angular 容器部署的方法
2018/04/17 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
Python中编写ORM框架的入门指引
2015/04/29 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
python程序控制NAO机器人行走
2019/04/29 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
python数据挖掘需要学的内容
2019/06/23 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
门卫岗位职责
2013/11/15 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
高一化学教学反思
2014/02/05 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
深入浅析Django MTV模式
2021/09/04 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python