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

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

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

图片精选