欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jQuery 分类搜索框带过滤器的搜索框-20130723

程序员文章站 2022-07-12 21:28:54
...
1、效果及功能说明

搜索框特效,制作一个jQuery分类搜索框,当鼠标点击搜索框时,会滑动展示分类菜单,点击选择/过滤分类菜单进行分类搜索

2、实现原理

先是在输入框内当点击到input后在添加一个点击事件,展开选择框里面的多少可以打勾的buttom都定义一个事件,当打过勾就可以会的当前的值,在进行筛选,当鼠标离开展开框后,展开框的展开类被删除,展开框消失,和在input里面的箭头回复原状,当展开框出现的时候箭头是向上的,展开框出现后箭头是向下的

主要的方法

$ui.find('.searchtext').bind('focus click',function(){
		
			  $ui.find('.arrowDown').addClass('arrowUp').removeClass('arrowDown').andSelf().find('.dropdown').slideDown(500);
		});
// 对焦点上单击显示下拉列表中, 和更改的箭头图像	

$ui.bind('mouseleave',function(){
			$ui.find('.arrowUp').addClass('arrowDown').removeClass('arrowUp').andSelf().find('.dropdown').slideUp(500);
		});

//鼠标离开隐藏下拉,和更改的箭头图像


3、效果图


jQuery 分类搜索框带过滤器的搜索框-20130723
            
    
    博客分类: 学习前端技术jQuery bindaddClassremoveClassandSelffind 

4、运行环境

IE6 IE7 IE8及以上 Firefox 和 Google Chrome游览器下都可实现


(无图片)5、所有图片的压缩包新建一个文件后将包解压放进文件夹图片的压缩包在页面的最下方可以看到并下载下载后无需修改文件夹名因为本身就已经写好了和html5内的路径相吻合

6、将创建html文件保存的时候将编码类型换成(UTF-8有签名)这样可以让部分中文正常的显示出来,将保存类型(T)换成(所有文件(*.*)),将html5和解压后的图片文件夹放在同一个文件夹内效果


7、代码[html5]

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
*{margin:0;padding:0;list-style-type:none;}
a,img{border:0;}
.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
.clearfix{display:inline-table;}/* Hides from IE-mac \*/
*html .clearfix{height:1%;}
.clearfix{display:block;}/* End hide from IE-mac */
*+html .clearfix{min-height:1%;}
/* demo */
.demo{width:480px;margin:30px auto;}
.demo h2{font-size:16px;color:#3366cc;height:30px;}
/* searchinfo */
.searchinfo{position:relative;height:35px;}
.searchinfo li{float:left;position:relative;}
.searchinfo li .text,.searchinfo li .button{background:url(images/spis_031ddf34.png) no-repeat;}
.searchinfo li .text{width:356px;height:22px;padding:4px 7px;padding:6px 7px 2px\9;font:16px arial;border:1px solid #cdcdcd;border-color:#9a9a9a #cdcdcd #cdcdcd #9a9a9a;vertical-align:top;outline:none;margin:0 5px 0 0;}
.searchinfo li .button{width:95px;height:32px;padding:0;padding-top:2px\9;border:0;background-position:0 -35px;background-color:#ddd;cursor:pointer}
.searchinfo .arrowUp,.searchinfo .arrowDown{position:absolute;top:12px;left:10px;width:10px;height:9px;z-index:10;	}
.searchinfo .arrowUp{background:url(images/up.png) no-repeat;}
.searchinfo .arrowDown{background:url(images/down.png) no-repeat;}
/* dropdown */
.dropdown{width:360px;padding:6px 5px;border:solid 1px #ddd;background:#efefef;position:absolute;left:0;top:31px;}
.dropdown .tit_filter{width:348px;border:1px solid #f9f9f9;background:#ddd;font-size:14px;color:#000;height:24px;line-height:24px;padding:2px 5px;}
.dropdown li{float:left;width:175px;padding:0 0 0 5px;font-size:14px;line-height:32px;height:32px;}
.dropdown li label{cursor:pointer;}
</style>

</head>
<body>

	<div class="demo">
		<h2>搜索框过滤器演示</h2>
		<form action="" method="post" name="searchform" id="searchform" class="searchinfo">
			<ul class="clearfix">
				<li>
					<input type="text" name="keyword" value="" id="keyword" class="text searchtext" />
					<span class="arrowDown"></span>
				</li>
				<li><input type="submit" value="搜索" class="button searchbtn" /></li>
			</ul>
			<ul class="dropdown clearfix" style="display:none;">
				<li class="tit_filter">过滤搜索</li>
				<li><input type="checkbox" id="all"/><label for="all"><strong>所有分类</strong></label></li>
				<li><input type="checkbox" id="Automotive" /><label for="Automotive">汽车</label></li>
				<li><input type="checkbox" id="Baby" /><label for="Baby">婴儿</label></li>
				<li><input type="checkbox" id="Beauty" /><label for="Beauty">美女</label></li>
				<li><input type="checkbox" id="Books" /><label for="Books">书籍</label></li>
				<li><input type="checkbox" id="Cell" /><label for="Cell">手机</label></li>
				<li><input type="checkbox" id="Cloth" /><label for="Cloth">服装</label></li>
				<li><input type="checkbox" id="Electronics" /><label for="Electronics">电子产品</label></li>
				<li><input type="checkbox" id="Gourmet" /><label for="Gourmet">美食</label></li>
				<li><input type="checkbox" id="Health" /><label for="Health">保健</label></li>
				<li><input type="checkbox" id="Home" /><label for="Home">家居与园艺</label></li>
				<li><input type="checkbox" id="Industrial" /><label for="Industrial">产业</label></li>
				<li><input type="checkbox" id="Jewelry" /><label for="Jewelry">首饰</label></li>
				<li><input type="checkbox" id="Magazines" /><label for="Magazines">杂志</label></li>
			</ul>
		</form>
	</div>
	
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
	<script type="text/javascript">
	$(function() {
	//定义方法
		var $ui = $('#searchform');
		//定义参数将#searchform放进去		
		
		$ui.find('.searchtext').bind('focus click',function(){
		//定义遍历获得.searchtext当点击鼠标时添加一个点击事件方法
			  $ui.find('.arrowDown').addClass('arrowUp').removeClass('arrowDown').andSelf().find('.dropdown').slideDown(500);
		});
//定义遍历获得.arrowDown后添加一个类arrowUp后在删除掉arrowDown类andSelf()可以同事添加两个不同的类,通过遍历获得.dropdown类 以滑动方式显示隐藏
	
		
		$ui.bind('mouseleave',function(){
		//定义获得当鼠标点击时添加一个改变元素的背景色方法
		$ui.find('.arrowUp').addClass('arrowDown').removeClass('arrowUp').andSelf().find('.dropdown').slideUp(500);
//定义遍历添加arrowDown类在删除掉arrowUp将两个方法方法在一起在通过遍历获得.dropdown类调用滑动展开方法
		});
	
		/** 选择所有的复选框 **/
		$ui.find('.dropdown').find('label[for="all"]').prev().bind('click',function(){
//定义遍历获得.dropdown在通过遍历获得label[for="all"]前一个同胞元素点击鼠标时添加一个点击事件
		$(this).parent().siblings().find(':checkbox').attr('checked',this.checked).attr('disabled',this.checked);
//当前查找每个段落的带有查找每个元素的所有类名通过遍历在获得:checkbox获得当前的checked 属性的当前的checked在获得
		});
		
	});
	</script>	

</body>
</html>
  • jQuery 分类搜索框带过滤器的搜索框-20130723
            
    
    博客分类: 学习前端技术jQuery bindaddClassremoveClassandSelffind 
  • 大小: 23.8 KB
  • jQuery 分类搜索框带过滤器的搜索框-20130723
            
    
    博客分类: 学习前端技术jQuery bindaddClassremoveClassandSelffind 
  • 大小: 23.8 KB