文章點選展開和收起詳解

admin發表於2018-12-20

在很多實際應用中,有這樣的效果,那就是隻顯示文章的一部分,其餘的部分用省略號替代,後面跟著一個類似展開的按鈕,這也許是為了節省空間或者其他目的,下面就通過程式碼例項介紹一下如何實現此功能。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
.box {
  width:300px;
}
.unfold, .pack {
  display: none;
  color: red;
  cursor: pointer;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script>
$(document).ready(function(){
  var box = $('#ant').text();
  function cutText() {
    if (box.length > 30) {
      $('.unfold').show();
      $('#ant').text(box.substr(0, 30) + "...");
    };
  };
  cutText();
  $('.unfold').click(function () {
    $('#ant').text(box);
    $(this).hide();
    $('.pack').show();
  });
  $('.pack').click(function () {
    cutText();
    $(this).hide();
  });
})
</script>
</head>
<body>
<div class="box">
  <span id="ant">螞蟻部落歡迎您,只有努力奮鬥才會有美好的未來,沒有任何人一開始就是高手softwhy.com</span>
  <span class="unfold">展開</span>
  <span class="pack">收起</span>
</div>
</body>
</html>

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).$(document).ready(function(){}),當文件結構完全載入完畢再去執行函式中的程式碼。

(2).var box = $('#ant').text(),獲取指定元素中的文字內容。

(3).function cutText() {},此函式實現了擷取字串的功能。

(4).if (box.length > 30) {  $('.unfold').show();

  $('#ant').text(box.substr(0, 30) + "...");

},如果文字內容的長度大於30,那麼就顯示展開按鈕,並且擷取欠30個字元,其餘的用三個點替代。

(5).cutText(),執行擷取操作。

(6).$('.unfold').click(function () {

  $('#ant').text(box);

  $(this).hide();

  $('.pack').show();

}),為展開按鈕註冊click事件處理函式。

點選此按鈕,可以顯示所有文字。

並隱藏當前按鈕,同時顯示收起按鈕。

(7).$('.pack').click(function () {

  cutText();

  $(this).hide();

}),為收起按鈕註冊click事件處理函式。

點選之後進行擷取操作,並且顯示展開按鈕。

二.相關閱讀:

(1).text()可以參閱jQuery text()一章節。

(2).show()可以參閱jQuery show()一章節。

(3).substr()可以參閱javascript substr()一章節。

相關文章