在網頁上只有一個小區域,但是說明性的文字又很長,下面這段腳本實現的是長文字的部分顯示。
當用戶點擊展開時,文字展開,收縮時文字收縮。
本來用jQuery自帶的toggle()就可以寫,但是我做的時候 toggle一直不work,所以就用了click + 標志位來做的
<script language="javascript" src="jquery.js"></script><script language="javascript">var cur_status = "less";$.extend({show_more_init:function(){//alert("show_more_init!");var charNumbers=$(".content").html().length;//總字數var limit=100;//顯示字數if(charNumbers>limit){var orgText=$(".content").html();//原始文本var orgHeight=$(".content").height();//原始高度var showText=orgText.substring(0,limit);//最終顯示的文本$(".content").html(showText);var contentHeight=$(".content").height();//截取內容后的高度$(".switch").click(function() {if(cur_status == "less"){$(".content").height(contentHeight).html(orgText).animate({ height:orgHeight}, { duration: "slow" });$(this).html("收縮");cur_status = "more";}else{$(".content").height(orgHeight).html(showText).animate({ height:contentHeight}, { duration: "fast" });$(this).html("展開");cur_status = "less";}});}else{$(".switch").hide();}}});$(document).ready(function(){$.show_more_init();});</script><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>test</title><style>#limittext{width:640px;height:auto;position:relative;background-color:#ccc;color:black;}.switch{font-size:12px;text-align:center;cursor:pointer;font-family:Verdana;font-weight:800;position:absolute;bottom:0;width:100%;/*background:url(more-bg.png) repeat-x bottom;*/height:40px;line-height:80px;}</style></head><body><div id="limittext" ><div class="content" style="padding-bottom:15px;">這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字,這是很長的一段文字</div><div class="switch">展開</div></div></body></html>
方法二:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>jQuery實現DIV層的收縮展開效果</title><script type="text/javascript" src="/images/jquery.js"></script><style>/* 收縮展開效果 */.text{line-height:22px;padding:0 6px;color:#666;}.box h1{padding-left:10px;height:22px;line-height:22px;background:#f1f1f1;font-weight:bold;}.box{position:relative;border:1px solid #e7e7e7;}</style></head><body><script type="text/javascript">// 收縮展開效果$(document).ready(function(){ $(".box h1").toggle(function(){ $(this).next(".text").animate({height: 'toggle', opacity: 'toggle'}, "slow"); },function(){$(this).next(".text").animate({height: 'toggle', opacity: 'toggle'}, "slow"); });});</script><!-- 收縮展開效果 --><div class="box"><h1>收縮展開效果</h1><div class="text"> 1<br /> 2<br /> 3<br /> 4<br /> 5<br /></div></div><br /><div class="box"><h1>收縮展開效果</h1><div class="text"> 1<br /> 2<br /></div></div><br><font color=red>第一次運行請刷新一下頁面。</font></body></html>
以上所述就是本文的全部內容了,希望大家能夠喜歡。
新聞熱點
疑難解答