simulation select element,自定义 select 下拉列表
重造轮子,模拟select下拉列表,以便自定义样式。 以下为编写过程中的笔记,欢迎交流指导。
<link rel="stylesheet" href="./src/css/simulation-ui.css">
<script src='./src/simulationUI.js' charset='utf8'><script>
1.使用元素属性 data-ui="select-item" 定义列表
<div class="simulation-select" id="simSelect">
<span value="0" data-ui="select-item">Chrome</span>
<span value="1" data-ui="select-item">IE</span>
<span value="3" data-ui="select-item">Firefox</span>
<span value="4" data-ui="select-item">Opera</span>
</div>
<script>
new SimulationSelect({
el: '#simSelect'
})
</script>
2.使用自定义数据 data 定义列表
<div class="simulation-select" id="simSelect"></div>
<script>
new SimulationSelect({
el: '#simSelect',
data: ['Chrome', 'IE', 'Firefox', 'Opera']
})
</script>
Class SimulationSelect
var simSelect = new SimulationSelect(config)
参数 config,模拟下拉列表的配置对象
- el (String) - 元素选择器,需要模拟列表的容器
- data (Array) - 列表item的数据,item为
字符串或包含id,key的对象
SimulationSelect 实例 simSelect
-
Propertyconfig{Object} 配置信息el{Element} 模拟下拉列表的元素节点options{Array} 列表的item元素组成的数组集合selectedIndex当前所选item的下标
value{String} 模拟列表的值selectedIndex当前所选item的下标值
-
Methodinit()初始化组件getUIItem()返回通过声明式定义item的元素template()返回模拟下拉列表的字符串模板render()渲染字符串模板并插入DOMbindEvent()绑定事件getIndex(element)获取传入元素的下标
-
Event
新增自定义事件change,当item选项改变即触发该事件处理函数,与select类似
simSelect.addEventListener('change', function (e) {
// 事件处理函数
}, true)
注意,此代码仅用于交流学习,暂时无作兼容性处理,请勿用于生产环境。
https://developer.mozilla.org/zh-CN/docs/Web/API
MIT