博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模拟实现select组件功能
阅读量:5307 次
发布时间:2019-06-14

本文共 3662 字,大约阅读时间需要 12 分钟。

 最近有个页面需要用到select,UI给定了特定的样式,但是浏览器默认select的样式改不了,所以自己模拟实现一个

页面结构

按默认时间
  • 按默认时间
  • 时间正序
  • 时间倒序

js实现:

思路:1、因为要实现的功能是点击select框,列表出现,再点击框或者其他区域列表隐藏。

           2、所以需要在select框上在定位一个透明的div作为显示列表的按钮。即div#timeText

   3、

/**     * 右侧筛选栏点击select弹出公共事件     */    function select_cli_down(obj){        $('body').on('click',obj,function(){            $(this).siblings('.text').find('i').addClass('fa-angle-up').removeClass('fa-angle-down');            $(this).siblings('.text').addClass('on_cli');            $(this).siblings('.selectList').slideDown(100);            $(this).hide();        });    }         /**     * 点击其他区域select收起公共事件     */    function select_cli_up(obj){        //点击select框以外的区域select收缩        $('body').on('click',(e)=> {              let e = e || window.event; //浏览器兼容性               let elem = e.target || e.srcElement;            if (elem.id && elem.id === obj) {                  return;              }//点击的不是div或其子元素               $('#'+obj).siblings('.text').removeClass('on_cli')                .find('i').addClass('fa-angle-down').removeClass('fa-angle-up');            $('#'+obj).siblings('.selectList').slideUp(100);            $('#'+obj).show();        });             }

css样式

            //自定义select样式                    .buildSelect{
background:#fff; margin:0 5px; float:left; cursor:pointer; position:relative; display:none; .sel_show{ position:absolute; width:100%; height:24px; top:0; left:0; background:url(about:blank); } .text{
width:100%; height:24px; border:1px solid #dcdcdc; padding:0 10px; color:#555; i{ display:inline-block; width:14px; line-height:23px; float:right; color:#d8d8d8; text-align:right; margin-left:10px; font-size:18px; } } //点击时添加class .on_cli{
border-color:$color; color:$color; i{ color:$color; } } .selectList{
width:100%; display:none; padding:5px 0; border:1px solid #da2d29; border-top:none; li{ height:26px; line-height:26px; color:#555; padding-left:10px; cursor:pointer; } li:hover{
color:$color; } } }

 

转载于:https://www.cnblogs.com/hess/p/10830938.html

你可能感兴趣的文章
Leetcode 589. N-ary Tree Preorder Traversal
查看>>
机器学习/深度学习/其他开发环境搭建记录
查看>>
xml.exist() 实例演示
查看>>
判断是否为空然后赋值
查看>>
zabbix监控日志文件
查看>>
正则表达式
查看>>
pip install torch on windows, and the 'from torch._C import * ImportError: DLL load failed:' s...
查看>>
环套树
查看>>
java基础(一):我对java的三个环境变量的简单理解和配置
查看>>
arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
查看>>
YTU 2625: B 构造函数和析构函数
查看>>
apache自带压力测试工具ab的使用及解析
查看>>
C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
查看>>
jenkins搭建
查看>>
C#中使用Split分隔字符串的技巧
查看>>
eclipse的调试方法的简单介绍
查看>>
加固linux
查看>>
IPSP问题
查看>>
HNU 10362 A+B for Input-Output Practice (II)
查看>>
10.17动手动脑
查看>>