jquery+css实现下拉列表(更新)

一、概述

和select下拉列表相比,jquery+css实现的下拉列表具有更好的灵活性,第二部分的代码为下拉列表的实现。

二、代码

下拉列表效果如下:

下拉列表的选项为动态追加,使用on方法,采用事件委派机制,响应选项的单击事件。

经过测试,以下代码在Firefox 55.0和Safari 10.1.1中可正常运行。

说明:和之前的版本相比,本次更新为下拉选项添加了滚动条。

注意:请确认jquery可以正常使用。

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>selector</title>

<style type="text/css">

.hide {

display: none;

}

div {

float: left;

width: 100%;

}

.selector-containter {

margin-bottom: 10px;

}

.selector {

width: 200px;

background: #FFF;

border: 1px solid #DDD;

}

.selector div {

height: 20px;

line-height: 20px;

padding: 10px 0 10px 0;

}

.selector-hint {

width: 158px;

border: 1px solid #DDD;

border-right: 0px;

}

.selector-expand {

width: 38px;

border: 1px solid #DDD;

text-align: center;

}

.selector-collapse {

width: 38px;

border: 1px solid #DDD;

text-align: center;

}

.selector-option-container {

width: 200px;

height: 80px !important;

padding: 0px !important;

overflow-y: scroll;

}

.selector-option-container div {

border-bottom: 1px solid #E8E8E8;

}

.selector-option {

width: 160px;

height: auto;

min-height: 20px;

}

.selector-checkbox-container {

width: 18px;

}

.selector-checkbox {

height: 12px;

padding: 0;

margin: 0;

}

</style>

<script src="jquery-3.2.1.min.js"></script>

<script>

$(document).ready(function() {

$(‘.selector‘).append(‘<div class="selector-hint">select fruit</div>‘);

$(‘.selector‘).append(‘<div class="selector-expand">+</div>‘);

$(‘.selector‘).append(‘<div class="selector-collapse hide">-</div>‘);

$(‘.selector‘).append(‘<div class="selector-option-container hide"></div>‘);

//使用on方法,采用事件委派机制,selector-option-container中的内容为后续动态追加

$(‘.selector‘).on(‘click‘, ‘.selector-expand‘, function() {

$(this).nextAll(‘.selector-option-container‘).children().remove();

$(‘.selector-option-container‘).children().remove();

$.each([‘apricot‘, ‘banana‘, ‘pear‘, ‘melo‘], function(index, value) {

$(‘.selector-option-container‘).append(‘<div class="selector-checkbox-container"><input type="checkbox" name="fruitGroup" class="selector-checkbox"/></div><div class="selector-option">‘ + value + ‘</div>‘);

});

$(this).addClass(‘hide‘);

$(this).next().removeClass(‘hide‘);

$(this).nextAll(‘.selector-option-container‘).removeClass(‘hide‘);

});

$(‘.selector‘).on(‘click‘, ‘.selector-collapse‘, function() {

$(this).addClass(‘hide‘);

$(this).prev().removeClass(‘hide‘);

$(this).nextAll(‘.selector-option-container‘).addClass(‘hide‘);

});

$(‘.selector-t1‘).on(‘click‘, ‘.selector-option‘, function() {

$(this).parent().parent().children(‘.selector-hint‘).text($(this).text());

$(this).parent().addClass(‘hide‘);

$(this).parent().prev().addClass(‘hide‘);

$(this).parent().prev().prev().removeClass(‘hide‘);

});

$(‘.selector-t1‘).on(‘click‘, ‘.selector-checkbox‘, function() {

$(this).parent().parent().parent().children(‘.selector-hint‘).text($(this).parent().next().text());

//采用prop方法,对于值为布尔型的属性赋值

$(this).prop(‘checked‘, false);

$(this).parent().parent().addClass(‘hide‘);

$(this).parent().parent().prev().addClass(‘hide‘);

$(this).parent().parent().prev().prev().removeClass(‘hide‘);

});

});

</script>

</head>

<body>

<div id="titan" class="selector-containter">

<div>

<div class="selector"></div>

</div>

</div>

<div id="athena" class="selector-t1 selector-containter">

<div>

<div class="selector"></div>

</div>

</div>

</body>

</html>

时间: 2024-10-14 09:34:21

jquery+css实现下拉列表(更新)的相关文章

jquery+css实现下拉列表

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>fruit</title><style type="text/css"> .hide {  display: none;}div {  float: left;  width: 100%;}.selector-containter {  margin-bottom: 10p

【源码分享】jquery+css实现侧边导航栏

jquery+css实现侧边导航栏 最近做项目的时候,突然想用一个侧边导航栏,网上找了几个插件,有的太丑而且不太符合我的预期.与其修改别人的代码,不如自己来写一个了.废话不多说先上图,感兴趣的请继续看下去. 1效果图 当有顶部导航栏的时候侧边导航栏会消失. 响应式方面,同样的顶部导航栏消失后右下角的图标才出现.点击出现导航,选中后消失: 这里是个demo ,没有做平滑滚动,需要的可以自己加上. 大体就介绍这么多吧,下面上代码. 2css代码 这里是css代码,详情请看注释 1 <style>

用纯css改变下拉列表select框的默认样式(转)

用纯css改变下拉列表select框的默认样式 分享到 分类 JS学习   关键字 前端   发布 kris  2015-04-01 注意 转载须保留原文链接,译文链接,作者译者等信息. 在这篇文章里,我将介绍如何不依赖JavaScript用纯css来改变下拉列表框的样式. 问题的提出 事情是这样的,您的设计师团队向您发送一个新的PSD(Photoshop文档),它是一个新的网站的最终设计. 一切看起来很好,很正常,直到你看到他/她设计的一个选择下拉框跟浏览器默认提供的样式有些不同!你说:“这没

jQuery css() 方法

jQuery css() Method css() 方法设置或返回被选元素的一个或多个样式属性. 返回 CSS 属性 如需返回指定的 CSS 属性的值,请使用如下语法: css("propertyname"); 下面的例子将返回首个匹配元素的 background-color 值: 实例 $("p").css("background-color"); 尝试一下 » 设置 CSS 属性 如需设置指定的 CSS 属性,请使用如下语法: css(&qu

Jquery CSS 操作 - height() 方法

一.height() 方法 height() 方法返回或设置匹配元素的高度 $(".btn1").click(function(){ $("p").height(50); }); height方法事例 Jquery CSS 操作 - height() 方法,码迷,mamicode.com

jQuery&amp;CSS 顶部和底部固定浮动工具栏 兼容IE6

现在常常能看到一些网站(如:新浪微博和花瓣)导航条或工具栏固定在网页的顶部或其他地方.这样的布局方式,能便于用户点击和“曝光率”,不用每次都要把网页拖动到某个特定位置才能点击或看到. 其实这样的布局方式很早就有,只是没有那么个契机推广开吧.做起来也不复杂,只要设置一个小小的属性“position:fixed”便能完成,最关键的无不呼在于要兼容IE6而已. 首先我们来看HTML代码,是不是超简单?这里提供的只是一个简单的框架,实际应用的时候,只要把想要的元素添加东西就在这区域内加就行. HTML

jQuery css详解

今天确确实实是放了一天假,喝了点小酒,看了天天向上和快乐大本营以及中国好舞蹈,越来越热爱舞蹈了,还是总结一篇吧. @jquery css css(name|pro|[,val|fn):访问或设置匹配元素的样式属性 1 $("div").click(function(){ 2 $(this).css({width:20px,height:30px}) 3 }); offset([coordinates]):获取匹配元素在当前视口(body)的相对偏移 1 <p>hello b

jQuery CSS()方法改变CSS样式实例解析

转自:http://www.jbxue.com/article/24588.html 分享一个jQuery入门实例:使用CSS()方法改变现有的CSS样式表,css()方法在使用上具有多样性.其中有一种可接受两个输入参数:样式属性和样式值,两者之间用逗号分隔.比如要改变链接颜色,可以这样编写代码: $("#61dh a").css('color','#123456');//选择器‘$("#61dh a")'表示ID为‘#61dh'的元素下的所有链接.//.css(‘

jQuery CSS 操作

jQuery CSS 操作 jQuery 拥有三种用于 CSS 操作的重要函数: $(selector).css(name,value) $(selector).css({properties}) $(selector).css(name) CSS 操作实例 函数 css(name,value) 为所有匹配元素的给定 CSS 属性设置值: 实例 $(selector).css(name,value) $("p").css("background-color",&qu