jquery案例1--网站品牌列表效果

这个系列带着大家手把手的做一些小案例,小demo,今天要讲的第一个demo是网站品牌列表效果,要实现这样一个功能,请看图

思路分析:

点击下方显示全部品牌按钮,显示全部品牌,再点击,隐藏。很简单,我们一步一步来分析

首先,需要用到的知识点:

1.点击,click()

2.显示,show()

3.隐藏,hide()

4.设置css,.css('background','xxx');

代码实现:

1.html代码我就不解释了,贴上来大家自己看,亲测可以运行

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>网站品牌列表效果</title>
<style type="text/css">
  * {
    margin:0;
	padding:0;
  }
  body {
    font-size:14px;
    text-align:center;
    font-family:"黑体";
  }
  a {
    color:#04D;
    text-decoration:none;
  }
  a:hover {
    color:#F50;
    text-decoration:underline;
  }
  .SubCategoryBox {
    width:948px;
    margin:0 auto;
    text-align:center;
    margin-top:10px;
  }
  .SubCategoryBox ul {
    list-style:none;
  }
  .SubCategoryBox ul li {
    display:block;
    float:left;
    width:200px;
    line-height:30px;
  }
  .showmore {
    clear:both;
    text-align:center;
    padding-top:10px;
  }
  .showmore a {
    display:block;
    width:120px;
    margin:0 auto;
    line-height:24px;
    border:1px solid #aaa;
  }
  .showmore a span {
    padding-left:15px;
    background:url(images/down.gif) no-repeat 0 0;
  }
  .promoted a {
    color:#f50;
  }
  .head{
    background:#f2f2f2;
    padding:5px;
    height:35px;
    text-align:left;
    margin:5px 0px;
  }
  .head h3{
    color:#666;
    margin-top:10px;
    margin-left:10px;
  }
  .head h3 span {
    color:#F60;
  }
  .promoted {
    color:#f50;
  }
</style>
</head>
<body>
  <div id="nav"><img src="images/xiangji.jpg"/></div>
  <div class="SubCategoryBox">
    <div class="head"><h3>商品筛选:<span>热卖相机</span></h3></div>
    <ul>
      <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="#">柯达</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>
	</ul>
	<div class="showmore"><a href="#"><span>显示全部品牌</span></a></div>
  </div>
</body>
</html>

2.基础html页面搭建起来了,我们开始实现功能

 (1)未点击按钮前,显示了7个li,前面6个以及最后一个,其余的隐藏了。那么怎么去实现这样一个功能呢?

我们是不是就要用选择器,让<ul>元素下索引值大于5的<li>元素去除最后一个li元素这些元素隐藏,是不是就能达到我们的初始效果

var $category = $("ul li:gt(5):not(:last)");
$category.hide();
        //:last  获取最后一个元素
		//:eq(index) 获取索引等于index的元素
		//:lt(index) 获取索引小于index的元素
		//:gt(index) 获取索引大于index的元素

这里用到了过滤选择器,注释已经给到大家了

(2)当用户单击按钮后,我们先获取按钮

var $toggleBtn = $("div.showmore > a");

然后给按钮添加点击事件,使用show()方法把隐藏的列表显示出来

$toggleBtn.click(function(){
    $category.show();
    return false;
})

到这里还是不行,我们还需要讲显示全部品牌按钮改成精简显示品牌,并且图标也要变写

$(".showmore a span").css("background","url(images/up.gif) no-repeat 0 0").text("精简显示品牌");

写到这里,已经完成了50%了,第三步就是要实现高亮的推荐品牌了,这里我们需要使用filter()方法去筛选出品牌并为他们添加高亮颜色样式addClass()

我们在ul下面的li下去过滤这些品牌,代码怎么写?

$("ul li").filter(":contains('佳能')",":contains('尼康')",":contains('奥林巴斯')").addClass("promoted");	

 接下来我们就要做一个判断,如果它显示,就让他隐藏,如果隐藏,就让他显示。并且隐藏时,去掉高亮样式

那么完整代码如下:

$(function(){
      var $category = $("ul li:gt(5):not(:last)");
      $category.hide();
      var $toggleBtn = $("div.showmore > a");
      $toggleBtn.click(function(){
          if($category.is(":visible")) {
            $category.hide();
            $(".showmore a span").css("background","url(images/down.gif) no-repeat 0 0").text("显示全部品牌");
            $("ul li").removeClass("promoted");
            return false;
          } else {
            $category.show();
            $(".showmore a span").css("background","url(images/up.gif) no-repeat 0 0").text("精简显示品牌");
            $("ul li").filter(":contains('佳能')",":contains('尼康')",":contains('奥林巴斯')").addClass("promoted");			
            return false;
          }
        }
	  );
  });

讲到这,这个案例也就结束了,案例不难,涉及到的知识点有点多,大家要复习巩固,才能运用自如哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西狂小杨过

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值