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.htmlcssjs。其中,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中文网免费下载站.txtphp中文网下载站.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)}});
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1551355.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

滑动窗口->dd爱框框

1.题目&#xff1a; 2.题解&#xff1a; 2.1为什么用滑动窗口优化&#xff1a; 因为元素都是大于0的 所以&#xff1a;当找到大于等于x的值时&#xff0c;right可以不用返回 两个指针都往后走&#xff1b;因此可以使用滑动窗口优化暴力解法 2.2&#xff1a;滑动窗口具体使用步…

python flask实现mock接口

在 Flask 中实现模拟&#xff08;mock&#xff09;接口通常是为了在没有实际后端服务的情况下进行前端开发、单元测试或集成测试。你可以创建一个简单的 Flask 应用来模拟特定的 API 行为&#xff0c;返回预设的数据。以下是如何使用 Flask 实现一个 mock 接口的示例&#xff1…

NAT模式 LVS负载均衡群集部署

目录 NAT模式 LVS负载均衡群集部署 1.关闭所有虚拟机的防火墙和核心防护 2.部署共享存储nfs&#xff08;ip:192.168.110.20&#xff09; 3.配置nginx节点服务器&#xff08;192.168.110.70&#xff0c;192.168.110.80&#xff09; 4.配置tomcat节点服务器&#xff08;192.…

c++第十二章续(队列结构类模拟)

队列类 设计类&#xff0c;需要开发公有接口和私有实现 Queue类接口 公有接口&#xff1a; 默认初始化&#xff0c;和可以用显式初始化覆盖默认值 Queue类的实现 如何表示队列数据&#xff1a; 一种方法是使用new动态分配一个数组&#xff0c;它包含所需的元素数。不过&…

知乎信息流广告营销获客投放策略!

知乎内容营销已成为品牌吸引目标客户、提升品牌知名度的重要手段&#xff0c;吸引了众多企业的关注。为了更好地利用知乎这一平台进行品牌推广&#xff0c;越来越多的企业开始关注知乎信息流广告的投放。云衔科技通过知乎信息流广告实现高效的营销获客&#xff0c;为企业提供知…

如何实现一个优秀的散列表!

文章内容收录到个人网站&#xff0c;方便阅读&#xff1a;http://hardyfish.top/ 文章内容收录到个人网站&#xff0c;方便阅读&#xff1a;http://hardyfish.top/ 文章内容收录到个人网站&#xff0c;方便阅读&#xff1a;http://hardyfish.top/ 前言 假设现在有一篇很长的…

锦囊妙计系列:没有项目支撑的情况下怎么从java到Python平稳过度并就业成功

从Java转向Python&#xff0c;并在没有项目支撑的情况下平稳过渡并实现就业&#xff0c;尽管有挑战&#xff0c;但完全可以通过系统学习、项目积累、技能展示和策略性求职来达成目标。以下是详细的步骤和策略&#xff0c;帮助你在不依赖现有项目的情况下实现从Java到Python的成…

24.9.29

星期一&#xff1a; 补 cf round974 div3 H cf传送门 题意&#xff1a;给一数组&#xff0c;q次询问&#xff0c;每次询问l-r区间内是否每个数字都出现偶数次 终于找到了梦中的随机数函数&#xff0c;这随机数真是非常顶级口牙 思路&a…

在线SQL模拟器

前言 有时候我们想学习下SQL&#xff0c;但是缺少数据库环境&#xff0c;多种数据库类型&#xff0c;MySQL&#xff0c;SQL server&#xff0c;Oracle&#xff0c;PostgreSQL等等&#xff0c;自己安装&#xff1f;耗时费力&#xff0c;占用电脑资源&#xff0c;要是有一个在线…

理解 Vue 的 setup 应用程序钩子

title: 理解 Vue 的 setup 应用程序钩子 date: 2024/9/30 updated: 2024/9/30 author: cmdragon excerpt: 摘要:本文详细介绍了Vue 3中setup函数的应用,包括其概念、特性、使用方法及重要性。setup函数作为组合API的核心,在组件实例化前被调用,用于设置响应式状态、计算…

如何构建一个生产级的AI平台(2)?

书接上回&#xff0c;继续往下讲,本节会说一下如何给大模型应用构建安全防护机制 为大模型应用构建安全防护 构建安全防护有助于降低 AI 风险&#xff0c;不仅可以保护您的用户&#xff0c;还可以保护您&#xff08;开发人员&#xff09;。只要有可能发生故障&#xff0c;就应…

Redis篇(应用案例 - UV统计)(持续更新迭代)

目录 一、HyperLogLog 二、测试百万数据的统计 一、HyperLogLog 首先我们搞懂两个概念&#xff1a; UV&#xff1a;全称Unique Visitor&#xff0c;也叫独立访客量&#xff0c;是指通过互联网访问、浏览这个网页的自然人。 1天内同一个用户多次访问该网站&#xff0c;只记录…

大盘点|9月独家爆款SVG模版(互斥伸长、扑克出牌、预感应滑动等)

九月即将结束&#xff0c;黑科技 SVG 编辑器作为业界天花板&#xff0c;在本月又发明了哪些一骑绝尘的 SVG 特效大杀器&#xff1f;一起来看看我们的盘点与推荐吧&#xff01;如需体验&#xff0c;不妨直接登陆黑科技编辑器一探究竟。 1️⃣互斥伸长/互斥切换-伸长 E2 平台的…

C# C++ 笔记

第一阶段知识总结 lunix系统操作 1、基础命令 &#xff08;1&#xff09;cd cd /[目录名] 打开指定文件目录 cd .. 返回上一级目录 cd - 返回并显示上一次目录 cd ~ 切换到当前用户的家目录 &#xff08;2&#xff09;pwd pwd 查看当前所在目录路径 pwd -L 打印当前物理…

如何使用 Python 读取数据量庞大的 excel 文件

使用 pandas.read_excel 读取大文件时&#xff0c;的确会遇到性能瓶颈&#xff0c;特别是对于10万行20列这种规模的 .xlsx 文件&#xff0c;常规的 pandas 方法可能会比较慢。 要提高读取速度&#xff0c;关键是找到更高效的方式处理 Excel 文件&#xff0c;特别是在 Python 的…

Android Stuido中编译信息出现乱码的解决方式

打开菜单File -> Settings&#xff0c;选择Editor -> File Encodings 窗口&#xff0c;将编码设置为正确的字符集&#xff0c;保证 Global Encoding、Project Encoding 和 Default Encoding for properties files 都设置为 UTF-8。

当今爆火的RPA其实就是自动化测试

最近有机会看到了 RPA 在实际工作中的重度应用&#xff0c;深刻感受到了自动化的强大实力&#xff0c;以后的应用前景时完全可期的。 RPA (Robotic Process Automation) 简介 Robotic Process Automation (RPA) 是一种技术&#xff0c;使用软件机器人&#xff08;或称“机器人…

APO v0.5.0 发布:可视化配置告警规则;优化时间筛选器;支持自建的ClickHouse和VictoriaMetrics

APO 新版本 v0.5.0 正式发布&#xff01;本次更新主要包含以下内容&#xff1a; 新增页面配置告警规则和通知 在之前的版本中&#xff0c;APO 平台仅支持展示配置文件中的告警规则&#xff0c;若用户需要添加或调整这些规则&#xff0c;必须手动编辑配置文件。而在新版本中&a…

09_OpenCV彩色图片直方图

import cv2 import numpy as np import matplotlib.pyplot as plt %matplotlib inlineimg cv2.imread(computer.jpeg, 1) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) plt.imshow(img) plt.show()plot绘制直方图 plt.hist(img.ravel(), 256) #ravel() 二维降一维 256灰度级…

【使用resnet18训练自己的数据集】

1.背景及准备 书接上文【以图搜图代码实现】–犬类以图搜图示例 总结了一下可以优化的点&#xff0c;其中提到使用自己的数据集训练网络&#xff0c;而不是单纯使用预训练的模型&#xff0c;这不就来了&#xff01;&#xff01; 使用11类犬类微调resnet18网络模型&#xff1a…