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 相关文章推荐
js form 验证函数 当前比较流行的错误提示
Jun 23 Javascript
修复ie8&amp;chrome下window的resize事件多次执行
Oct 20 Javascript
jQuery当鼠标悬停时放大图片的效果实例
Jul 03 Javascript
javascript中怎么做对象的类型判断
Nov 11 Javascript
用js一次改变多个input的readonly属性值的方法
Jun 11 Javascript
JQuery仿小米手机抢购页面倒计时效果
Dec 16 Javascript
js库Modernizr的介绍和使用
May 07 Javascript
jquery.validate使用时遇到的问题
May 25 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
Mar 08 Javascript
微信小程序  checkbox组件详解及简单实例
Jan 10 Javascript
vue.js  父向子组件传参的实例代码
Oct 29 Javascript
JavaScript选择排序算法原理与实现方法示例
Aug 06 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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
德国网上药房:Apotal
2017/04/04 全球购物
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
印度民族服装购物网站:BIBA
2019/08/05 全球购物
学雷锋先进个人事迹
2014/05/26 职场文书
会议欢迎词范文
2015/01/27 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
五年级数学教学反思
2016/02/16 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL