Jquery實現詳細與精簡的切換(實現更多選項的功能)

上週學習了Javascript,只是學習了點皮毛而已。這周學習了Jquery.學習到了Jquery操作Dom節點。然後。。然後學習到了隱藏和顯示標籤。於是想嘗試能不能寫的出京東商城的那個商品篩選功能。

那個篩選功能如圖:


wKioL1QTBK_RrFOQAAH-ZRafYVM242.jpg


由於剛學習。所以技術不精。這裏只實現以下兩個功能

  1. 更多選項。點擊切換收起選項。

  2. 點擊條目在上面顯示已點擊條目。

首先是Html代碼:這裏主要的代碼是:

<div class="SubCategoryBox">
			<div class="mt"><span>筆記本</span><div></div></div>
			<div class="attr">
				<span>品牌:</span>
				<div class="ul_list">
					<ul id="pingpai">
						<li><a href="#">聯想</a></li>
						<li><a href="#">索尼</a></li>
						<li><a href="#">三星</a></li>
						<li><a href="#">尼康</a></li>
						<li><a href="#">松下</a></li>
						<li><a href="#">卡西歐</a></li>
						<li><a href="#">富士</a></li>
						<li><a href="#">柯達</a></li>
						<li><a href="#">賓得</a></li>
						<li><a href="#">理光</a></li>
						<li><a href="#">奧林巴斯</a></li>
						<li><a href="#">明基</a></li>
						<li><a href="#">愛國者</a></li>
						<li><a href="#">AAA</a></li>
						<li><a href="#">明基</a></li>
						<li><a href="#">愛國者</a></li>
						<li><a href="#">BBBB</a></li>
						<li><a href="#">明基</a></li>
						<li><a href="#">愛國者</a></li>
						<li><a href="#">其它</a></li>
					</ul>
				</div>
				
			</div>
			<div class="attr">
				<span>價格:</span>
				<div class="ul_list">
					<ul id="price">
						<li><a href="#">0-1000</a></li>
						<li><a href="#">1001-2000</a></li>
						<li><a href="#">2001-3000</a></li>
						<li><a href="#">3000-~</a></li>
					</ul>
				</div>
			</div>
			<div class="attr">
				<span>尺寸:</span>
				<div class="ul_list">
					<ul id="chicun">
						<li><a href="#">14</a></li>
						<li><a href="#">15.6</a></li>
						<li><a href="#">21</a></li>
						<li><a href="#">29</a></li>
					</ul>
				</div>
			</div>
			<div class="attr">
				<span>觸控:</span>
				<div class="ul_list">
					<ul id="chukong">
						<li><a href="#">普通觸控</a></li>
						<li><a href="#">PC平板二合一</a></li>
						<li><a href="#">非觸控</a></li>
					</ul>
				</div>
			</div>
			<div class="attr">
				<span>處理器:</span>
				<div class="ul_list">
					<ul id="cpu">
						<li><a href="#">Intel i3</a></li>
						<li><a href="#">Intel i5</a></li>
						<li><a href="#">Intel i7</a></li>
						<li><a href="#">AMD A6</a></li>
					</ul>
				</div>
			</div>
			<div class="attr">
				<span>厚度:</span>
				<div class="ul_list">
					<ul id="height">
						<li><a href="#">刀鋒輕薄</a></li>
						<li><a href="#">便攜輕薄</a></li>
						<li><a href="#">普通輕薄</a></li>
					</ul>
				</div>
			</div>
			<div class="attr">
				<span>顯卡:</span>
				<div class="ul_list">
					<ul id="xiankao">
						<li><a href="#">入門級獨顯</a></li>
						<li><a href="#">性能級獨顯</a></li>
						<li><a href="#">玩家級獨顯</a></li>
					</ul>
				</div>
			</div>
			<div class="attr">
				<span>大家說:</span>
				<div class="ul_list">
					<ul id="allspeak">
						<li><a href="#">配置不錯</a></li>
						<li><a href="#">散熱很好</a></li>
						<li><a href="#">外觀不錯</a></li>
						<li><a href="#">屏幕大</a></li>
					</ul>
				</div>
			</div>
			<div class="showmore">
				<a href="javascript:void(0)"><span>更多選項(處理器,厚度,顯卡,大家說)</span></a>	
				
			</div>


		</div>

CSS代碼:

<style>
		 *{ margin:0; padding:0;}
		body {font-size:12px;text-align:center;}
		a { color:#04D; text-decoration:none;}
		a:hover { background-color:#ABCDEF; text-decoration:none;}
		.SubCategoryBox {width:800px;margin:0 auto; text-align:center;margin-top:40px;border:1px solid #ccc;}
		.SubCategoryBox .mt {float:left;width:780px;height:50px;text-align:left;background-color:#f7f7f7;padding:0 10px;line-height: 50px;border-bottom: 1px solid #ccc;}
		.SubCategoryBox .mt span {float:left;width:50px;height:20px;text-align:left;background-color:#f7f7f7;padding:0 10px;color: red;}
		.SubCategoryBox .mt div {float:right;width:700px;height:20px;text-align:left;background-color:#f7f7f7;}
		.SubCategoryBox .mt div b {background-color:#FCFCFC; border:1px solid #ccc;margin-right:10px;color:#FF6A6A;padding: 2px;cursor:pointer;}
		.s {padding: 2px;cursor:pointer;color:#912CEE;}
		.SubCategoryBox .attr{
			float:left;width:780px;text-align: left;background-color:#f7f7f7;padding:0 10px;color: red;border-bottom: 1px dashed #ccc;
		}
		.SubCategoryBox .attr span {float:left;text-align: right;width:50px;padding-top: 10px;}
		.SubCategoryBox .attr .ul_list {float:left;text-align: left;padding-bottom: 10px;padding-top: 10px;}
		.SubCategoryBox .attr .ul_list ul { list-style:none;}
		.SubCategoryBox .attr .ul_list ul li { display:block; float:left;text-align:center; width:120px; line-height:20px;}
		.showmore { clear:both; text-align:center;padding-top:10px;}
		.showmore a { display:block; width:250px; margin:0 auto; line-height:24px; border:1px solid #AAA;}
		.showmore a span { padding-left:15px; background:url(img/down.gif) no-repeat 0 0;}
		.onttop{float: right;padding-top: 5px;width:10px;height:10px;background-color: red;}
		.togglebackground{background-color: #ABCDEF;}
</style>

Css代碼我就不去解釋了。

這裏主要是Jquery代碼。可能我的方法不是很到位,希望各位見諒啊。有更好的可以蓋樓。一定改進的。

$(document).ready(function() {
        //定義一個數組。用於存放每個條目的內容
	var arr = new Array();
	//初始化 剛開始就將第3個以後的隱藏起來。
	var $category = $("div.attr:gt(3)");
	$category.hide();
	//詳細和精簡的切換代碼。
	$("div.showmore > a").click(function() {
		if (!$category.is(":visible")) {
			$category.show();
			$(".showmore a span").css("background", "url(./img/up.gif) no-repeat 0 0").text("收起");
		} else {
			$category.hide();
			$(".showmore a span").css("background", "url(./img/down.gif) no-repeat 0 0").text("更多選項(處理器,厚度,顯卡,大家說)");
		}
	});
        //從這裏開始就是響應點擊條目的事件了。
	$("#pingpai > li >a").click(function() {
	        //先清空div
		$(".mt div").empty();
                arr[0] = $(this).text();
		print_r();
	});
	$("#price > li").click(function() {
		$(".mt div").empty();
		arr[1] = $(this).text();
		print_r();
	});
	$("#chicun > li").click(function() {
		$(".mt div").empty();
		arr[2] = $(this).text();
		print_r();
	});
	$("#chukong > li").click(function() {
		$(".mt div").empty();
		arr[3] = $(this).text();
		print_r();
	});
	$("#cpu > li").click(function() {
		$(".mt div").empty();
		arr[4] = $(this).text();
		print_r();
	});
	$("#height > li").click(function() {
		$(".mt div").empty();
		arr[5] = $(this).text();
		print_r();
	});
	$("#xiankao > li").click(function() {
		$(".mt div").empty();
		arr[6] = $(this).text();
		print_r();
	});
	$("#allspeak > li").click(function() {
		$(".mt div").empty();
		arr[7] = $(this).text();
		print_r();
	});

        //循環打印數組
	function print_r() {
		if (arr.length > 0) {
			for (var i = 0; i < arr.length; i++) {
				if (arr[i] != undefined) {
					var txt = $("<b name='" + i + "'></b>").text(arr[i]);
					$(".mt div").append(txt).fadeIn();

				}
			}
		}
	}
	//jquery動態響應點擊事件,響應點擊之後刪除條目
	$(document).on('click', 'b', function() {
		arr[$(this).attr("name")] = undefined;
		$("b[name='" + $(this).attr("name") + "']").fadeOut(500);
	});

});

所有的核心代碼都在這裏了。歡迎交換想法。另外附上源碼下載:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章