js实现select下拉框菜单


Posted in Javascript onDecember 08, 2015

本文实例讲述了js实现select下拉框菜单的详细代码。分享给大家供大家参考。具体如下:
运行效果截图如下:

js实现select下拉框菜单

具体代码如下:

<!DOCTYPE html>

<html>

<head>
 <title></title>
 <style type="text/css">
  #gridComboBox {
  background: #fff;
  border: 1px solid #2d78f4;
  border-radius: 2px;
  -moz-box-shadow: inset 0 0 4px #06c;
  -webkit-box-shadow: inset 0 0 4px #06c;
  box-shadow: inset 0 0 4px #06c;
 }
 </style>
</head>

<body>
 <input onclick="doClick(this,'ddd(aa/bb/cc/erererer/dfdfdfdfdfdfdfdfdfdfdfdfdf/ejjejrjerjer//erererer ////////)eee')" />
 <input onclick="doClick(this,'ddd(aa/bb/cc/erererer/dfdfdfdfdfdfdfdfdfdfdfdfdf/ejjejrjerjer//erererer ////////)eee')" style='width: 300px;' />
 <p><b>Needed Properties:</b> sender.offsetTop & sender.offsetLeft & sender.offsetHeight</p>
</body>

</html>
<script type="text/javascript">

function delGridComboBox() { // 删除弹出框
 var divContainer = document.getElementById('gridComboBox');
 if (divContainer) {
  divContainer.parentNode.removeChild(divContainer);
 }
}

function doClick(sender, str) {//str='ddd(aa/bb/cc/erererer/dfdfdfdfdfdfdfdfdfdfdfdfdf/ejjejrjerjer//erererer ////////)eee' 只取()得内容/分割做为数据源

 delGridComboBox();

 // console.log(sender);
 // for(var i in sender) 
 // {
 //  console.log(i+"|"+sender[i]);
 // }

 
 var re = /[^\)\(]*/g //取出()中的内容作为下拉数据源
 var fit = str.match(re);
 var fmt = fit[2].split('/');

 var divContainer = document.createElement('div');
 divContainer.style.width = sender.clientWidth + 2 + "px";
 divContainer.style.overflow = "hidden";
 divContainer.style.position = 'absolute'; 
 divContainer.style.top = sender.offsetTop + sender.offsetHeight + 'px';
 divContainer.style.left = sender.offsetLeft + 'px';
 divContainer.style.zIndex = 999;
 divContainer.id = "gridComboBox";

 for (var i = 0; i < fmt.length; i++) {  

  console.log('fmt[i]>>', fmt[i]);
  var txt = document.createElement('div'); 
  txt.innerHTML = fmt[i];
  txt.title = txt.innerHTML;
  txt.style.margin = 3+'px';  
  txt.addEventListener('mouseover', function changeBg(event) {
   event.target.style.fontWeight = 'bold';
   event.target.style.color = 'white';
   event.target.style.backgroundColor = '#2d78f4';
  }, false);
  txt.addEventListener('mouseout', function unChangeBg(event) {
   event.target.style.fontWeight = 'normal';
   event.target.style.color = 'black';
   event.target.style.backgroundColor = 'white';
  }, false);
  txt.onclick = function(subSender) {
   sender.value = subSender.target.innerText;
   delGridComboBox();
  };
  divContainer.appendChild(txt);
 };
 
 document.body.appendChild(divContainer);
};
</script>

如果大家还想深入学习,可以点击jquery下拉框效果汇总、JavaScript下拉框效果汇总进行学习。

以上就是js实现select下拉框菜单的代码,希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
11个用于提高排版水平的基于jquery的文字效果插件
Sep 14 Javascript
jQuery中find()方法用法实例
Jan 07 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
Feb 27 Javascript
jquery中map函数遍历数组用法实例
May 18 Javascript
详解JavaScript的while循环的使用
Jun 03 Javascript
js获取本机操作系统类型的两种方法
Dec 19 Javascript
基于JavaScript实现跳转提示页面
Sep 24 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
Jun 08 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
element-ui table组件如何使用render属性的实现
Nov 04 Javascript
微信小程序实现搜索功能
Mar 10 Javascript
vue3.0 项目搭建和使用流程
Mar 04 Vue.js
基于jQuery 实现bootstrapValidator下的全局验证
Dec 07 #Javascript
JavaScript的代码编写格式规范指南
Dec 07 #Javascript
JSON遍历方式实例总结
Dec 07 #Javascript
JS实现日期时间动态显示的方法
Dec 07 #Javascript
基于jQuey实现鼠标滑过变色(整行变色)
Dec 07 #Javascript
js实现遍历含有input的table实例
Dec 07 #Javascript
JavaScript中的return语句简单介绍
Dec 07 #Javascript
You might like
javascript html 静态页面传参数
2009/04/10 Javascript
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
继续学习javascript闭包
2015/12/03 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
浅谈编码,解码,乱码的问题
2016/12/30 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
Python中协程用法代码详解
2018/02/10 Python
python读取并写入mat文件的方法
2019/07/12 Python
opencv实现简单人脸识别
2021/02/19 Python
Python Process多进程实现过程
2019/10/22 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
python3 配置logging日志类的操作
2020/04/08 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
部队万能检讨书
2014/02/20 职场文书
2014全国两会心得体会
2014/03/17 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
单位介绍信格式范文
2015/05/04 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
Python MNIST手写体识别详解与试练
2021/11/07 Python