<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. H5各种头部meta标签功能大全

    <!DOCTYPE html>  H5标准声明,使用 HTML5 doctype,不区分大小写 <head lang=”en”> 标准的 lang 属性写法 <meta ...

  2. Go微服务 grpc/protobuf

    了解grpc/protobuf gRPC是一个高性能.通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers ...

  3. 当跨域时,js ajax 请求出现options请求

    上面有文章说过http的options. 查了很久.试了很多版本的jQuery,下面这段代码在同事的机子上测试是没有问题的.正常 的请求, 一在我机子上面就会出现option,网上说先向服务器预检等. ...

  4. 特殊权限 - SUID GUID STICKYBIT

    ◆ SUID ( Set User ID ) Linux里,用户的ID被称作UID.在实际生产中,可能需要临时借用别的用户执行程序,因此需要能够临时变更自己UID的机能叫做SUID.借助SUID权限, ...

  5. ThreadLocal 是什么?(未完成)有哪些使用场景?(未完成)

    ThreadLocal 是什么?(未完成)有哪些使用场景?(未完成)

  6. 从c到c++<三>

    引用是给一个变量起别名回顾下变量,它有这两个属性:名称和空间.而引用不是变量,它仅仅只是变量的别名,没有自己的独立空间,需要与它所引用的变量共享空间,所以对于引用所做的改变实际上是对它所引用的变量的改 ...

  7. resultSet.getMetaData() 获得表结构

    1.得到查询结果,一个数据集 rs = stat.executeQuery("select * from " + table_name + " limit " ...

  8. [唐胡璐]Selenium技巧 - 处理Windows程序(进程)

    Selenium WebDriver java 提供了一个专门的WindowsUtils类去和Windows操作系统交互。 就像我们之前说过有时候跑完脚本后,IEDriverServer.exe进程没 ...

  9. Charles----伪造手机端的request和reponse参数

    使用场景: 在测试中通过伪造reponse数据来模拟某些测试场景,如下截图.要求:通过修改reponse中的值,再次请求修改7为100,只是会显示为99+ 实现方式: 1.通过breakpoints来 ...

  10. appium+python 【Mac】UI自动化测试封装框架介绍 <四>---脚本的调试

    优秀的脚本调试定位问题具备的特点: 1.方便调试. 2.运行报错后容易定位出现的问题. 3.日志的记录清晰 4.日志可被存储,一般测试结果的分析在测试之后会进行,那么日志的存储将会为后期的分析问题带来 ...