<template>
<ul id="select">
<li>
<div class="select-head">
<span class="select-head-cont">{{cont}}</span>
<span class="select-icon">▼</span>
</div>
<ul class="option">
<li class="option-item" v-for="v in 10" @click="optionClick(v-1)">{{v-1}}</li>
</ul>
</li>
</ul>
</template>
<style type="text/css"> ul,li{
list-style: none;
padding: 0;
margin: 0;
}
/*下拉框样式*/
#select{
margin-right: .05rem;
background: rgba(0,0,0,0);
width: .5rem;
height: .28rem;
font-family: "微软雅黑";
font-size: 16px;
color: white;
border: 1px #DDDDDD solid;
border-radius: 3px;
}
.select-head{
overflow: hidden;
width: 100%;
height: .28rem;
box-sizing: border-box;
padding: 0 5px;
line-height: .28rem;
}
.select-head .select-head-cont{
float: left;
color: black;
}
.select-head .select-icon{
float: right;
color: #B2B2B2;
}
.option{
text-indent: 10px;
margin-top: 1px;
width: 100%;
color: black;
background: rgba(236,111,111,0.1);
line-height: .28rem;
border: 1px #cfcfcf solid;
visibility: hidden;
}
.option-item:hover{
background: rgba(204,106,67,0.3);
}
</style>
<script>
export default {
data () {
return {
cont:'-',
}
},
methods: {
optionClick(v){
this.cont='*'
this.$emit('input', v)
document.getElementsByClassName('option')[0].style.visibility = 'hidden';
}
},
mounted(){
let selectHead = document.getElementsByClassName('select-head')[0];
let Option = document.getElementsByClassName('option')[0];
let optionItem = document.getElementsByClassName('option-item');
let itemH=optionItem[0].offsetHeight
let Y =document.body.clientHeight-selectHead.getBoundingClientRect().bottom; if(Y<itemH*10){
Option.style.webkitTransform="translate(0px,-"+(itemH*11+5)+"px)"
}
// console.log(Y,itemH*11,Option.offsetHeight)
/*点击后出现下拉框*/
selectHead.addEventListener('click',()=>{
Option.style.visibility = 'visible';
},false); /*点击其他地方时,select会收起来*/
document.body.addEventListener('click',()=>{
Option.style.visibility = 'hidden';
},true);
},
}
</script>

效果:

vue js select下拉框的更多相关文章

  1. js select下拉框下拉跳转代码

    下拉跳转原理很简单这个用到了select的onchangeg事件,只要这里改变我们就获取select值直接location.href=this.value即可. <select name=&qu ...

  2. css配合js模拟的select下拉框

    css配合js模拟的select下拉框 <!doctype html> <html> <head> <meta charset="utf-8&quo ...

  3. JS为Select下拉框添加输入功能

    JavaScript使用parentNode.nextSibling.value实现的本功能,实际上你会发现网页上有两个控件元素,一个是Select,一个是input,使用CSS将input覆盖于se ...

  4. JS模拟下拉框select

    最近做的一个项目有下拉框 同事都是用的是美化控件,但是用美化控件当然是好 但是网上找的一个控件不知道扩展性怎么样?对以后的维护会不会造成有影响?比如我想增加一个功能或者减少一个功能会不会影响?还有就是 ...

  5. vue select下拉框绑定默认值

    vue select下拉框绑定默认值: 首先option要加value值,以便v-model可以获取到对应选择的值 一.当没有绑定v-model,直接给对应的option加selected属性 二.当 ...

  6. js&jquery 获取select下拉框的值、文本内容、自定义属性

      js&jquery 获取select下拉框的值.文本内容.自定义属性 CreationTime--2018年7月2日09点22分 Author:Marydon html <selec ...

  7. 非常实用的select下拉框-Select2.js

    在Web开发中,Select下拉框是常用的输入组件.由于原生的Select几乎很难通过CSS样式控制.一些好看的Select下拉框就只能通过模拟来实现.PHP程序员雷雪松给大家推荐一筐款不错的Sele ...

  8. js如何获取select下拉框的value以及文本内容

    select下拉框在项目开发中是经常用到的,特别是在联级菜单方面的应用更为广泛.但是,对于一些初学者来说,如何获取下拉框子节点option的value值和文本内容,还是有一点难度的.其他的就不说了,现 ...

  9. 在element-ui的select下拉框加上滚动加载

    在项目中,我们需要运用到很多来自后端返回的数据.有时是上百条,有时甚至上千条.如果加上后端的多表查询或者数据量过大,这就导致在前端的显示就会及其慢,特别是在网络不好的时候更是如此. 自然,后端就做了一 ...

随机推荐

  1. 一个简单的window.onscroll实例

    鉴于better-scroll实现这个效果很复杂,想用最原生的效果来实现吸顶效果 一个简单的window.onscroll实例,可以应用于移动端 demo 一个简单的window.onscroll实例 ...

  2. 用js原生加jquery实现下拉跳转至商品详情页,上拉回到商品简介

    在做一个商城的项目时,做到商品详情页的时候需要实现这种下拉跳转到商品详情页加载许多图片,上拉回到商品简介的效果,并且需要用户在滑动时有一种费力的感觉.最初是通过iscroll插件实现的,但这个插件在使 ...

  3. 使用CDS view开发SAP Marketing contact的facet追溯工具

    这篇SAP社区博客里,我的一位同事介绍了SAP Marketing里contact facet数据模型的存储表: https://blogs.sap.com/2016/07/01/how-does-s ...

  4. HugePages概述--翻译自19C文档

    翻译自: https://docs.oracle.com/en/database/oracle/oracle-database/19/unxar/administering-oracle-databa ...

  5. prometheus 配置项注意事项

    1.job:metrics_path 如果是静态模式下配置job(statics),直接配置job的metrics_path选项是不生效的.需要同时在exporter端指定metrics_path.如 ...

  6. SVN版本控制—branches、trunk、tag篇

    新建资源仓库时,可选择默认创建三个文件夹.这三个文件夹分别是[trunk][branches][tags] [Trunk] 一般用于存放目前项目主线,也就是项目所有功能模块的集合体,一整个项目所有代码 ...

  7. glPixelStorei 详解 包括像素传输

    3.glPixelStore 像glPixelStorei(GL_PACK_ALIGNMENT, 1)这样的调用,通常会用于像素传输(PACK/UNPACK)的场合.尤其是导入纹理(glTexImag ...

  8. javascript中如何判断数组是数组

    if (!Array.isArray) { Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === ...

  9. Python3+Appium学习笔记06-noReset参数

    百度很多文章说noReset这个参数是用来防止重复安装app的.可能这是以前的用法.目前最新版本appium默认是清除session信息,并且不会删除应用的. ​ noReset这个参数,根据appi ...

  10. 可能是最全面的 Python 字符串拼接总结

    来源: 枫恋寒 链接: https://segmentfault.com/a/119000001.png"font-size: 12px;"> 在 Python 中字符串连接 ...