Html jquery下拉select美化插件——selectFilter.js
1. Html jquery下拉select美化插件——selectFilter.js
jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画以及Ajax交互,使得开发者能更高效地构建交互式网页。在本案例中,jquery.selectlist.js
插件正是基于jQuery构建的,旨在提供一种优雅的方式来增强下拉框的视觉效果。
在网页设计中,下拉选择框是常见的用户交互元素,但其默认样式往往较为单调,不能满足现代网页的美观需求。为了解决这个问题,开发者们创建了各种各样的下拉选择框美化插件,其中selectFilter.js
便是其中之一。这个插件不仅能够美化下拉选择框,还支持常用的事件处理,提升了用户体验。
下拉框(Select List)作为常见的交互元素,其外观和用户体验往往直接影响到网站的整体质感。然而,HTML原生的下拉框样式较为单一,难以满足现代网页设计的需求。为此,开发者们通常会借助于jQuery等JavaScript库来实现下拉框的美化和功能增强。本篇将详细介绍一款名为“jquery.selectlist.js”的插件,该插件能够轻松地为下拉框添加各种美观的特效。插件的核心功能在于将传统的HTML <select>
元素转换为具有自定义样式的可交互控件。它提供了丰富的定制选项,包括但不限于字体、颜色、背景、边框等,使得下拉框不仅在视觉上更加吸引人,同时也能更好地融入到网页的整体设计中。
jquery.selectlist.js
插件为开发者提供了一种简单且强大的方式来美化和优化网页中的下拉框元素。通过深入理解插件的工作原理和使用方法,我们可以将其灵活运用到实际项目中,提升网站的交互性和美观度。而对于有编程基础的开发者来说,进一步对插件源码进行二次开发,可以创造出更多个性化的下拉框特效,满足更复杂的需求。
1.1. 流程
在实际应用中,jquery.selectlist.js
插件的使用流程通常是这样的:
(1)确保在页面中引入了jQuery库和jquery.selectlist.js
插件文件。根据提供的压缩包文件名,我们可以看到有三个主要文件:index.html
、css
和js
。其中,index.html
是示例页面,css
目录可能包含了插件的样式文件,而js
目录则包含插件的JavaScript代码。
(2)在HTML中,我们需要一个或多个<select>
元素,这些元素将会被插件转换。每个<select>
元素可以包含多个<option>
,用于展示不同的选择项。
(3)接着,在文档加载完成后,通过调用jQuery的选择器和插件方法,例如$('select').selectlist();
,将选中的<select>
元素应用插件效果。
(4)如果需要自定义样式或功能,可以通过插件提供的配置选项进行设置。比如,你可以改变默认的下拉箭头图标,调整选中项的高亮样式,甚至添加自定义事件处理函数。
(5) 为了实现更好的用户体验,jquery.selectlist.js
插件可能还支持触屏设备的交互,使下拉框在手机或平板电脑上也能流畅操作。
1.2. 主要功能
(1) 样式美化:该插件能够将传统的HTML <select>
元素转换为具有现代感和自定义样式的组件。它可以改变下拉箭头的样式,调整选项的文字颜色、背景色等,使得整体风格与网站设计更加协调。
(2) 过滤功能:selectFilter.js
提供了搜索过滤功能,允许用户在下拉选项中输入关键词,快速定位到所需选项,大大提高了选择效率。
(3) 事件处理:插件支持多种事件,如change
(选中项改变)、focus
(获取焦点)、blur
(失去焦点)等,开发者可以方便地绑定自定义函数,实现更丰富的交互逻辑。
(4) 可定制性:selectFilter.js
允许开发者自定义多项设置,包括但不限于主题颜色、字体大小、搜索框样式等,以适应不同场景的需求。
在使用selectFilter.js
时,我们通常会配合HTML、CSS和JavaScript来完成界面的构建。index.html
是主页面文件,包含着<select>
元素和其他相关HTML结构;js
目录下的文件包含了插件的核心代码,一般会有一个selectFilter.js
的主文件,以及可能的其他辅助脚本;css
目录则存放了样式表,用于定义美化后的选择框样式;images
目录可能包含箭头图标或其他必要的图像资源。
在实际应用中,我们首先需要在HTML中引入selectFilter.js
和相关的CSS文件,然后对需要美化的<select>
元素进行初始化。例如:
<link rel="stylesheet" href="css/selectFilter.css">
<script src="js/selectFilter.js"></script>
<script>
$(document).ready(function() {
$('#yourSelect').selectFilter();
});
</script>
这里,#yourSelect
是你要操作的下拉选择框的ID。
此外,php中文网免费下载站.txt
和php中文网下载站.url
可能是提供插件下载和相关教程的链接资源,对于学习和使用selectFilter.js
有一定的帮助。
selectFilter.js
是一个强大的下拉选择框美化工具,它通过简洁的API和高度的可定制性,让开发者能够轻松地打造出美观且功能齐全的下拉选择框,提升网页的交互体验。在实际开发中,结合jQuery和其他前端技术,我们可以利用selectFilter.js
创造出更多富有创新性的交互效果。
1.3. 用法
在的第一个设置值为空的就可以有空的值选择。
事件的话 :$(‘select’).val(‘’); - 直接设置为空
1.3.1. select
name 可以按收选择的值【用于表单提交名称自定义】
1.3.2. option
(1)value:传给后台的参数
(2)selected:设置默认选中
(3)disabled :设置禁止选则
<option value="2023">2023</option>
<option value="2022" selected="selected">2022</option>
<option value="2021" disabled="disabled">2021</option>
1.3.3. 赋值
$('#year_input_id').val("2023")var yearFilterId = $('#year_filter_id')var year1Html = `<option value="2023">2023</option>`yearFilterId.append(year1Html);var year2Html = `<option value="2022" selected="selected">2022</option>`yearFilterId.append(year2Html);var year3Html = `<option value="2021" disabled="disabled">2021</option>`yearFilterId.append(year3Html);$('#year_select_id').selectFilter({callBack: function (val) {$('#year_input_id').val(val)}});
1.3.4. 回调
//这里是初始化
$('.filter-box').selectFilter({
callBack : function (val){
//返回选择的值
console.log(val+'-是返回的值')
}
});
1.4. selectFilter源码
1.4.1. selectFilter.css
/*** selectFilter --v1.0***/
* {margin: 0;padding: 0;box-sizing: border-box;
}li {list-style: none;
}.filter-disabled {-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none;
}.filter-black {width: 1.2rem;
}.filter-box {position: relative;padding-top: 0.08rem;
}.filter-box select {display: none;
}.filter-text {height: 0.6rem;overflow: hidden;cursor: pointer;border: 1px solid #e6e6e6;display: flex;flex-direction: row;justify-content: center;align-items: center;border-radius: 0.1rem;margin-top: 0.08rem;background-color: #efeff4;
}.filter-text .filter-title {min-width: 1.5rem;max-width: 1.65rem;border: 0;background-color: transparent;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;cursor: pointer;font-size: 0.26rem;margin-top: 0.2rem;text-align: center;
}.filter-list {display: none;width: 100%;max-height: 40vh;background-color: #fff;font-size: 14px;position: absolute;z-index: 99;border: 1px solid #e6e6e6;overflow: auto;
}.filter-list li.filter-null a {color: #d2d2d2;
}.filter-list li a {display: block;padding: 0 0.05rem;line-height: 0.8rem;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;cursor: pointer;font-size: 0.34rem;text-align: center;
}.filter-list li:hover {background-color: #f2f2f2;
}.filter-list li.filter-selected {background-color: #5FB878;
}.filter-list li.filter-selected a {display: block;color: #fff;
}.filter-list li.filter-disabled {background-color: #fff;
}.filter-list li.filter-disabled a {display: block;color: #d2d2d2;
}.filter-list li.filter-disabled:hover a {cursor: not-allowed !important;background-color: #fff;
}.icon-filter-arrow {width: 0.32rem;height: 0.32rem;margin-right: 0.2rem;background-repeat: no-repeat;background-image: url(../../img/icon/icon_arrow_down_x2.png);background-size: 100%;transition: all .2s;
}.filter-list::-webkit-scrollbar {width: 4px;height: 4px;
}.filter-list::-webkit-scrollbar-track {background: #fff
}.filter-list::-webkit-scrollbar-thumb {background: #CBCBCB;
}
1.4.2 .selectFilter.js
/*** options={* callBack : function (res){} // 返回选中的值 进行事件操作* }* 也可以放在表单直接获取 select标签的 值**/;jQuery.fn.selectFilter = function (options){var defaults = {callBack : function (res){}};var ops = $.extend({}, defaults, options);var selectList = $(this).find('select option');var that = this;var html = '';// 读取select 标签的值html += '<ul class="filter-list">';$(selectList).each(function (idx, item){var val = $(item).val();var valText = $(item).html();var selected = $(item).attr('selected');var disabled = $(item).attr('disabled');var isSelected = selected ? 'filter-selected' : '';var isDisabled = disabled ? 'filter-disabled' : '';if(selected) {html += '<li class="'+ isSelected +'" data-value="'+val+'"><a title="'+valText+'">'+valText+'</a></li>';//$(that).find('.filter-title').val(valText);}else if (disabled){html += '<li class="'+ isDisabled +'" data-value="'+val+'"><a>'+valText+'</a></li>';}else {html += '<li data-value="'+val+'"><a title="'+valText+'">'+valText+'</a></li>';};});html += '</ul>';$(that).append(html);$(that).find('select').hide();//点击选择$(that).on('click', '.filter-text', function (){$(that).find('.filter-list').slideToggle(100);$(that).find('.filter-list').toggleClass('filter-open');$(that).find('.icon-filter-arrow').toggleClass('filter-show');});//点击选择列表$(that).find('.filter-list li').not('.filter-disabled').on('click', function (){var val = $(this).data('value');var valText = $(this).find('a').html();//$(that).find('.filter-title').val(valText);$(that).find('.icon-filter-arrow').toggleClass('filter-show');$(this).addClass('filter-selected').siblings().removeClass('filter-selected');$(this).parent().slideToggle(50);for(var i=0; i<selectList.length; i++){var selectVal = selectList.eq(i).val();if(val == selectVal) {$(that).find('select').val(val);};};ops.callBack(val); //返回值});//其他元素被点击则收起选择$(document).on('mousedown', function(e){closeSelect(that, e);});$(document).on('touchstart', function(e){closeSelect(that, e);});function closeSelect(that, e) {var filter = $(that).find('.filter-list'),filterEl = $(that).find('.filter-list')[0];var filterBoxEl = $(that)[0];var target = e.target;if(filterEl !== target && !$.contains(filterEl, target)&& !$.contains(filterBoxEl, target)) {filter.slideUp(50);$(that).find('.filter-list').removeClass('filter-open');$(that).find('.icon-filter-arrow').removeClass('filter-show');};}
};
1.5. 示例代码
1.5.1. index.tml
<!doctype html>
<html>
<head><meta charset="utf-8"><title>下拉列表</title><meta name="viewport"content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/><script type="text/javascript" src="../static/js/init-rem.js"></script><link rel="stylesheet" type="text/css" href="../static/css/mui.min.css"/><script type="text/javascript" src="../static/js/mui.min.js"></script><link rel="stylesheet" type="text/css" href="../static/css/mui.loading.css"/><script type="text/javascript" src="../static/js/mui.loading.js"></script><script type="text/javascript" src="../static/js/my-mui-loading.js"></script><link rel="stylesheet" type="text/css" href="../static/css/mobileSelect.css"/><script type="text/javascript" src="../static/js/mobileSelect.min.js"></script><script type="text/javascript" src="../static/js/echarts.min.js"></script><link rel="stylesheet" type="text/css" href="../static/css/selectFilter.css"/><script type="text/javascript" src="../static/js/jquery-3.1.1.min.js"></script><script type="text/javascript" src="../static/js/selectFilter.js"></script><link rel="stylesheet" type="text/css" href="../static/css/base.css"/><script type="text/javascript" src="../static/helper/net-helper.js"></script><script type="text/javascript" src="../static/helper/init-helper.js"></script><script type="text/javascript" src="../static/constant/sp-constant.js"></script><script type="text/javascript" src="../static/js/vconsole.min.js"></script><script type="text/javascript">//var vc = new VConsole()</script>
</head>
<body>
<!--标题区域-->
<section class="base-title-layout"><div class="base-title-bar"><span class="base-title-back" onclick="history.go(-1)"><img src="../img/icon/icon_back.png"/></span><h1>下拉列表</h1><span class="base-title-back"></span></div>
</section>
<!--内容区域-->
<div class="base-page-layout"><div class="base-select-section"><div><div class="base-select-layout"><div id="year_select_id" class="filter-box"><div class="filter-text"><input id="year_input_id" class="filter-title"type="text" placeholder="年份" readonly/><i class="icon-filter-arrow"></i></div><select id="year_filter_id" name="month_filter_id"></select></div></div></div></div>
</div>
<script type="text/javascript" src="../js/page-select-filter.js"></script>
</body>
</html>
1.3.2. index.js
$(function () {//返回上一页面backPage()listener()initData()
})function initData() {}
function listener() {$('#year_input_id').val("2023")var yearFilterId = $('#year_filter_id')var year1Html = `<option value="2023">2023</option>`yearFilterId.append(year1Html);var year2Html = `<option value="2022" selected="selected">2022</option>`yearFilterId.append(year2Html);var year3Html = `<option value="2021" disabled="disabled">2021</option>`yearFilterId.append(year3Html);$('#year_select_id').selectFilter({callBack: function (val) {$('#year_input_id').val(val)}});
}
相关文章:

Html jquery下拉select美化插件——selectFilter.js
1. Html jquery下拉select美化插件——selectFilter.js jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画以及Ajax交互,使得开发者能更高效地构建交互式网页。在本案例中,jquery.selectlist.js插件正是基于jQuery构建的&…...
使用ESP8266扫描WiFi列表
一、简介 准备用基于esp8266的nodemcu开发板做一个天气时钟。目前只实现了第一阶段任务的第一点要求。使用arduino编程,在基于esp8266的nodemcu开发板上实现开机自动连接wifi。 这里记录一下使用ESP8266扫描WiFi列表的方法。还需要研究怎么把列表显示在网页上&…...

Java对象访问机制:句柄访问与直接指针访问
在Java虚拟机(JVM)中,对象的访问方式是一个关键的设计选择,它影响着程序的性能和内存管理。JVM规范中只规定了对象引用(reference)必须指向对象,但并没有定义这个引用应该如何定位和访问堆中对象…...

基于SpringBoot实现QQ邮箱发送短信功能 | 免费短信服务
开发学习过程中有个短信发送功能,阿里云腾讯云等等都要money,听说qq邮箱可以实现免费发送邮箱的功能(短信发送的平替),就用这个来实现!!!【找了好多好多方法才成功的啊啊啊啊&#x…...

【MySQL】聚合函数、group by子句
目录 聚合函数 count([distinct] column) sum([distinct] column) avg([distinct] column) max([distinct] column) min([distinct] column) group by子句 1.如何显示每个部门的平均薪资和最高薪资 2.显示每个部门每种岗位的平均薪资和最低薪资 3.显示平均工资低于200…...

详细分析SpringMvc中HandlerInterceptor拦截器的基本知识(附Demo)
目录 前言1. 基本知识2. Demo3. 实战解析 前言 对于Java的基本知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 1. 基本知识 HandlerInter…...
阳光能源嵌入式面试及参考答案(2万字长文)
管道能够承载的最大传输数据量是多少? 在嵌入式系统中,管道能够承载的最大传输数据量取决于多个因素。 首先,管道的容量受到操作系统的限制。不同的操作系统对管道的大小有不同的规定。一般来说,管道的容量通常是有限的,并且在不同的操作系统版本和配置下可能会有所不同。…...
P10483 小猫爬山
1. #include<bits/stdc.h> using namespace std; //一个记录小猫的重量,sum记录当前小猫的重量之和 int n, w, a[3000],sum[3000],ans; bool cmp(int a,int b) {return a > b; } //x表示小猫当前的编号,cnt表示缆车的数量 void dfs(int x,int …...

技术速递|加入 .NET 智能组件生态系统
作者:Daniel Roth - 首席产品经理 排版:Alan Wang .NET 智能组件是一组示例嵌入式 UI 组件,使得在应用中轻松添加 AI 启用的功能变得更加简单,例如从剪贴板数据自动填写表单、智能文本补全以及语义搜索等场景。.NET 智能组件演示了…...
python/requests库的使用/爬虫基础工具/
requests 是一个 Python 库,它允许你发送 HTTP 请求。这个库需要单独安装,因为它不是 Python 标准库的一部分 1.让我们安装requests 在控制台运行 pip install requests 使用 requests 发送请求 1.GET 请求: import requestsresponse …...

【STM32-HAL库】MQ2烟雾传感器使用(STM32F407ZET6)
MQ2可燃气体传感器介绍 MQ2是一种广谱气体传感器,能够检测多种可燃气体和烟雾。它是一种低成本、高灵敏度的传感器,广泛应用于家庭和工业环境中的气体监测。 原理 MQ2传感器的工作原理基于金属氧化物半导体(MOX)技术。当传感器暴露…...

玩转指针(3)
一、字符指针变量 字符指针变量(如char* p)的两种赋值方式 ①将字符类型地址赋值给字符指针变量 int main() {char a w;char* p &a;*p m;return 0; }②将常量字符串赋值给字符指针变量 常量字符串的介绍:用" "引起来的就…...

【CSS in Depth 2 精译_040】6.3 CSS 定位技术之:相对定位(下)—— 用纯 CSS 绘制一个三角形
当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结)第二章 相对单位(已完结)第三章 文档流与盒模型(已完结)第四章 Flexbox 布局(已…...

HTML流光爱心
文章目录 序号目录1HTML满屏跳动的爱心(可写字)2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐5HTML蓝色爱心射线6HTML跳动的爱心(简易版)7HTML粒子爱心8HTML蓝色动态爱心9HTML跳动的爱心(双心版)1…...
java技能
日志实际使用 log.error(“111”,e);和 System.out.println(ExceptionUtils.getStackTrace(error)); 日志查询 tail -f root.log 前端页面命名: mounted(){ document.title‘设备可视页面’ } 查看ips所属mac nbtstat -a 10.87.236.60 获取容器名称 hostName In…...

本省第一所!新大学,揭牌!
9月26日,海南艺术职业学院举行揭牌仪式,标志着海南省第一所公办艺术类高等职业院校正式揭牌成立。海南省旅文厅党组成员、副厅长刘成出席揭牌仪式,省教育厅党组成员、副厅长邢孔政在揭牌仪式上宣读省人民政府同意设立海南艺术职业学院的批复。…...

企业微信(企微)审批与影刀RPA结合
企业微信审批与影刀RPA结合 效果先看视频: 影刀与企业微信审批结合 具体步骤: 1、登录企微管理后台,新建一个审批流。 添加模板→自定义模板,根据需求添加审批节点。 添加完之后,回到审批界面,可以看…...

新手教学系列——用 VSCode 实现高效远程开发
随着软件开发环境日益复杂,远程开发已成为许多开发者的日常工作方式。尤其当项目需要直接在服务器上运行或本地计算资源有限时,能够使用一款便捷、强大的工具至关重要。在众多 IDE 中,VSCode 因其轻量、灵活且支持丰富插件,成为远程开发的理想选择。本文将详细介绍如何通过…...

[uni-app]小兔鲜-04推荐+分类+详情
热门推荐 新建热门推荐组件, 动态设置组件的标题 <template><!-- 推荐专区 --><view class"panel hot"><view class"item" v-for"item in list" :key"item.id">... ...<navigator hover-class"none&…...

PHP人才机遇桥梁招聘求职全能系统小程序源码
人才机遇桥梁 —— 招聘求职全能系统全解析 💼🚀 🌉 搭建人才与机遇的桥梁 在这个竞争激烈的职场环境中,找到一份心仪的工作或招募到合适的人才,往往不是一件容易的事。但幸运的是,我们有了“人才机遇桥梁…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...