这是一款简单的jquery FAQ问答列表特效。该FAQ问答列表可以通过点击问题的标题来展开或收缩列表,它使用简单,方便实用。

使用方法

在页面中引入jquery。

<script type="text/jscript" src="js/jquery.min.js"></script>
                
HTML结构

该FAQ问答列表采用无序列表作为HTML结构:

<div id="questions">
  <ul>
    <li class="clearfix">
      <h5><b class="UI-ask"></b>Lorem ipsum dolor sit amet, consectetuer adipiscing elit?</h5>
      <div class="foldContent">
        <p>Lorem ipsum dolor sit amet, ......</p>
      </div>
    </li>
    ......
  </ul>
</div>
                
CSS样式

为该FAQ问答列表设置以下的CSS样式。

@charset "utf-8";
*{margin:0;padding:0;list-style-type:none;}
a,img{border:0;}
a{text-decoration:none;}
body{font:12px/180% Arial, Helvetica, sans-serif, "新宋体";}
.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}
.clearfix{display:inline-table}
*html .clearfix{height:1%}
.clearfix{display:block}
*+html .clearfix{min-height:1%}

.UI-bubble{display:inline-block;width:23px;height:23px;overflow:hidden;background:url(../images/sicons.png) 0px 0px no-repeat;}
.UI-ask{display:inline-block;width:23px;height:23px;overflow:hidden;background:url(../images/sicons.png) -25px 0px no-repeat;}

/* questions */
#questions{width:772px;margin:20px auto;border:1px solid #e7e7e7;padding-top:14px;}
#questions li h5 .UI-ask,#questions li h5 .UI-bubble{position:absolute;left:0px;top:9px;}
#questions li{border-bottom:1px solid #e7e7e7;padding:0 14px 5px 14px;vertical-align:bottom;}
#questions li h5{height:40px;position:relative;color:#666;font-size:14px;cursor:pointer;line-height:40px;height:40px;overflow:hidden;padding:0 0 0 26px;}
#questions li .foldContent{border-left:3px solid #018ccb;padding:10px 26px;border-top:1px dashed #e2e2e2;line-height:24px;background:#f3f3f3;color:#888;}          
                
JavaScript

在页面DOM元素加载完毕之后,使用下面的方法使用户点击列表标题可以展开和收缩列表。

$(function(){    
  $("li>h5","#questions").bind("click",function(){
      var li=$(this).parent();
    if(li.hasClass("fold")){
      li.removeClass("fold");
      $(this).find("b").removeClass("UI-bubble").addClass("UI-ask");
      li.find(".foldContent").slideDown();
    }else{
      li.addClass("fold");
      $(this).find("b").removeClass("UI-ask").addClass("UI-bubble");
      li.find(".foldContent").slideUp();
    }
  });
})