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 相关文章推荐
网页设计常用的一些技巧
Dec 22 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
Jan 23 Javascript
JavaScript中使用arguments获得函数传参个数实例
Aug 27 Javascript
jQuery中before()方法用法实例
Dec 25 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
Jan 14 Javascript
一道常被人轻视的web前端常见面试题(JS)
Feb 15 Javascript
bootstrapValidator.min.js表单验证插件
Feb 09 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
Nov 10 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
Apr 27 Javascript
解决vue admin element noCache设置无效的问题
Nov 12 Javascript
Javascript表单序列化原理及实现代码详解
Oct 30 Javascript
JavaScript实现网页下拉菜单效果
Nov 20 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的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
使用jquery自定义鼠标样式满足个性需求
2013/11/05 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
Python字符串详细介绍
2015/05/09 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
财务副总经理工作职责
2013/11/25 职场文书
医学生职业规划范文
2014/01/05 职场文书
骨干教师培训方案
2014/05/06 职场文书
市政管理求职信范文
2014/05/07 职场文书
开工典礼策划方案
2014/05/23 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS