首页 > 语言 > JavaScript > 正文

jQuery实现文本展开收缩特效

2024-05-06 16:21:10
字体:
来源:转载
供稿:网友

在网页上只有一个小区域,但是说明性的文字又很长,下面这段脚本实现的是长文字的部分显示。

当用户点击展开时,文字展开,收缩时文字收缩。

本来用jQuery自带的toggle()就可以写,但是我做的时候 toggle一直不work,所以就用了click + 标志位来做的

 

 
  1. <script language="javascript" src="jquery.js"></script> 
  2. <script language="javascript"
  3. var cur_status = "less"
  4. $.extend({ 
  5. show_more_init:function(){ 
  6. //alert("show_more_init!"); 
  7. var charNumbers=$(".content").html().length;//总字数 
  8. var limit=100;//显示字数 
  9. if(charNumbers>limit) 
  10. var orgText=$(".content").html();//原始文本 
  11. var orgHeight=$(".content").height();//原始高度 
  12. var showText=orgText.substring(0,limit);//最终显示的文本 
  13. $(".content").html(showText); 
  14. var contentHeight=$(".content").height();//截取内容后的高度 
  15. $(".switch").click( 
  16. function() { 
  17. if(cur_status == "less"){ 
  18. $(".content").height(contentHeight).html(orgText).animate({ height:orgHeight}, { duration: "slow" }); 
  19. $(this).html("收缩"); 
  20. cur_status = "more"
  21. }else
  22. $(".content").height(orgHeight).html(showText).animate({ height:contentHeight}, { duration: "fast" }); 
  23. $(this).html("展开"); 
  24. cur_status = "less"
  25. ); 
  26. else 
  27. $(".switch").hide(); 
  28. }); 
  29. $(document).ready(function(){ 
  30. $.show_more_init(); 
  31. }); 
  32. </script> 
  33. <!DOCTYPE html> 
  34. <html> 
  35. <head> 
  36. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  37. <title>test</title> 
  38. <style> 
  39. #limittext{ 
  40. width:640px; 
  41. height:auto; 
  42. position:relative; 
  43. background-color:#ccc; 
  44. color:black; 
  45. .switch
  46. font-size:12px; 
  47. text-align:center; 
  48. cursor:pointer; 
  49. font-family:Verdana; 
  50. font-weight:800; 
  51. position:absolute; 
  52. bottom:0; 
  53. width:100%; 
  54. /*background:url(more-bg.png) repeat-x bottom;*/ 
  55. height:40px; 
  56. line-height:80px; 
  57. </style> 
  58. </head> 
  59. <body> 
  60. <div id="limittext" > 
  61. <div class="content" style="padding-bottom:15px;"
  62. 这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字,这是很长的一段文字 
  63. </div> 
  64. <div class="switch">展开</div> 
  65. </div> 
  66. </body> 
  67. </html> 

方法二:

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <title>jQuery实现DIV层的收缩展开效果</title> 
  5. <script type="text/javascript" src="/images/jquery.js"></script> 
  6. <style> 
  7. /* 收缩展开效果 */ 
  8. .text{line-height:22px;padding:0 6px;color:#666;} 
  9. .box h1{padding-left:10px;height:22px;line-height:22px;background:#f1f1f1;font-weight:bold;} 
  10. .box{position:relative;border:1px solid #e7e7e7;} 
  11. </style> 
  12. </head> 
  13. <body> 
  14. <script type="text/javascript"
  15. // 收缩展开效果 
  16. $(document).ready(function(){ 
  17. $(".box h1").toggle(function(){ 
  18. $(this).next(".text").animate({height: 'toggle', opacity: 'toggle'}, "slow"); 
  19. },function(){ 
  20. $(this).next(".text").animate({height: 'toggle', opacity: 'toggle'}, "slow"); 
  21. }); 
  22. }); 
  23. </script> 
  24. <!-- 收缩展开效果 --> 
  25. <div class="box"
  26. <h1>收缩展开效果</h1> 
  27. <div class="text"
  28. 1<br /> 
  29. 2<br /> 
  30. 3<br /> 
  31. 4<br /> 
  32. 5<br /> 
  33. </div> 
  34. </div> 
  35. <br /> 
  36.  
  37. <div class="box"
  38. <h1>收缩展开效果</h1> 
  39. <div class="text"
  40. 1<br /> 
  41. 2<br /> 
  42. </div> 
  43. </div> 
  44. <br> 
  45. <font color=red>第一次运行请刷新一下页面。</font> 
  46. </body> 
  47. </html> 

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选