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 相关文章推荐
jQuery防止click双击多次提交及传递动态函数或多参数
Apr 02 Javascript
代码分析jQuery四种静态方法使用
Jul 23 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
Dec 24 Javascript
Bootstrap每天必学之按钮(Button)插件
Apr 25 Javascript
JavaScript获取URL中参数querystring的方法详解
Oct 11 Javascript
vue element项目引入icon图标的方法
Jun 06 Javascript
移动端图片上传旋转、压缩问题的方法
Oct 16 Javascript
angular6 填坑之sdk的方法
Dec 27 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
Aug 05 Javascript
解决vue项目 build之后资源文件找不到的问题
Sep 12 Javascript
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
微信小程序组件生命周期的踩坑记录
Mar 03 Javascript
基于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
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
js操作iframe父子窗体示例
2014/05/22 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
js常用DOM方法详解
2017/02/04 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
记一次vue去除#问题处理经过小结
2019/01/24 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
详解Golang 与python中的字符串反转
2017/07/21 Python
Python pandas常用函数详解
2018/02/07 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
初中学生评语大全
2014/04/24 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
教师工作表现评语
2014/12/31 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL