JS實(shí)現(xiàn)slide文字框縮放伸展效果代碼
本文實(shí)例講述了JS實(shí)現(xiàn)slide文字框縮放伸展效果代碼。分享給大家供大家參考,具體如下:
這里介紹的slide文字框縮放伸展效果,自己閑來(lái)無(wú)事寫(xiě)的,不是太好,可能在兼容性方面還需努力,展開(kāi)速度方面,IE8和火狐的展開(kāi)速度不一樣,火狐下更快一些,至今沒(méi)找到原因,也請(qǐng)JS高人指點(diǎn)江山。
運(yùn)行效果截圖如下:

在線(xiàn)演示地址如下:
http://demo.jb51.net/js/2015/js-slide-txt-dlg-show-codes/
具體代碼如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content" content="text/html charset=gb2312">
<title>slide文字框縮放伸展效果</title>
<style type="text/css">
*{margin:0; padding:0;}
ul{list-style:none;}
.box{width:300px; margin:10px; border:1px solid #ccc; overflow:hidden; position:relative; font-size:12px;}
.oHx{height:30px; background:#eee; line-height:30px; font-size:14px; text-indent:14px; cursor:pointer;}
.fold{position:absolute; top:9px; right:12px;}
.box_content{line-height:18px; overflow:hidden; display:none;}
</style>
<script type="text/javascript">
function getElementsByClassName(className,id,tag){
tag = tag || "*";
if(id){
var id = typeof id == "string" ? $(id) : id;
}else{
var id = document.body;
}
var els = id.getElementsByTagName(tag),arr = [];
for(var i=0,n=els.length;i<n;i++){
for(var j=0,k=els[i].className.split(" "),l=k.length;j<l;j++){
if(k[j]==className){
arr.push(els[i]);
break;
}
}
}
return arr;
};
function Slide(slideClass,slideBtn,slideCon,slideSpeed) {
this.oSlides = getElementsByClassName(slideClass);
this.oTimer = null;
this.slideBtn = slideBtn;
this.slideCon = slideCon;
this.slideSpeed = slideSpeed;
}
Slide.prototype = {
oTimer:null,
_init:function (){
this._slideEvent();
},
_slideEvent:function (){
var This = this;
for(var i = 0,n=This.oSlides.length;i<n;i++){
(function(n){
var oSlide = This.oSlides[n];
var oSlideBtn = getElementsByClassName(This.slideBtn,oSlide)[0];
var oSlideCon = getElementsByClassName(This.slideCon,oSlide)[0];
oSlideBtn.onclick = function (){
if(oSlideCon.style.display == "block" && This.oTimer == null){
This._slideClose(oSlideCon);
}else if(!(oSlideCon.style.display == "block" ) && This.oTimer == null){
This._slideOpen(oSlideCon);
}
}
})(i)
}
},
_slideOpen:function (slideCon){
var This = this;
slideCon.style.display = "block";
slideCon.style.height = "auto";
var slideHeight = slideCon.offsetHeight;
slideCon.style.height = 0 + "px";
This.oTimer = setInterval(function (){
if(slideCon.offsetHeight < slideHeight){
slideCon.style.height = slideCon.offsetHeight + 2 + "px";
}else{
clearInterval(This.oTimer);
This.oTimer = null;
}
},This.slideSpeed);
},
_slideClose:function (slideCon){
var This = this;
This.oTimer = setInterval(function (){
if(slideCon.offsetHeight <= 0){
clearInterval(This.oTimer);
slideCon.style.display = "none";
This.oTimer = null;
}else{
slideCon.style.height =slideCon.offsetHeight - 2 + "px";
}
},This.slideSpeed);
}
}
</script>
</head>
<body>
<div class="box">
<div class="oHx slide">收縮2</div>
<div class="box_content">
<ul class="uft" style="padding:10px;">
<li><a href="#" target="_blank">scscms V1.0 陽(yáng)光企業(yè)網(wǎng)站系統(tǒng)</a></li>
<li><a href="#" target="_blank">24點(diǎn),VC++游戲源碼</a></li>
<li><a href="#" target="_blank">可記錄圖像的C#數(shù)據(jù)庫(kù)記錄單程序</a></li>
<li><a href="#" target="_blank">jQuery 1.4 參考指南的實(shí)例源代碼</a></li>
</ul>
</div>
</div>
<div class="box">
<div class="oHx slide">收縮3</div>
<div class="box_content">
<ul class="uft"style="padding:10px;">
<li><a href="#" target="_blank">scscms V1.0 陽(yáng)光企業(yè)網(wǎng)站系統(tǒng)</a></li>
<li><a href="#" target="_blank">24點(diǎn),VC++游戲源碼</a></li>
<li><a href="#" target="_blank">可記錄圖像的C#數(shù)據(jù)庫(kù)記錄單程序</a></li>
<li><a href="#" target="_blank">jQuery 1.4 參考指南的實(shí)例源代碼</a></li>
</ul>
</div>
</div>
<script type="text/javascript">
var mySlide = new Slide("box","slide","box_content",10);
mySlide._slideEvent();
</script>
</body>
</html>
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- JS實(shí)現(xiàn)IE狀態(tài)欄文字縮放效果代碼
- js實(shí)現(xiàn)固定顯示區(qū)域內(nèi)自動(dòng)縮放圖片的方法
- JS實(shí)現(xiàn)可縮放、拖動(dòng)、關(guān)閉和最小化的浮動(dòng)窗口完整實(shí)例
- js實(shí)現(xiàn)鼠標(biāo)滾輪控制圖片縮放效果的方法
- JS網(wǎng)頁(yè)圖片按比例自適應(yīng)縮放實(shí)現(xiàn)方法
- js實(shí)現(xiàn)橫向伸展開(kāi)的二級(jí)導(dǎo)航菜單代碼
- JS實(shí)現(xiàn)可展開(kāi)折疊層的鼠標(biāo)拖曳效果
- JS+CSS實(shí)現(xiàn)的簡(jiǎn)單折疊展開(kāi)多級(jí)菜單效果
- JS實(shí)現(xiàn)鼠標(biāo)滑過(guò)折疊與展開(kāi)菜單效果代碼
- js實(shí)現(xiàn)點(diǎn)擊向下展開(kāi)的下拉菜單效果代碼
相關(guān)文章
javascript與webservice的通信實(shí)現(xiàn)代碼
關(guān)于javascript與webservice的通信,從理論上來(lái)說(shuō)實(shí)現(xiàn)應(yīng)該不難,主要是將服務(wù)器端的xml數(shù)據(jù)進(jìn)行一個(gè)簡(jiǎn)單的處理然后以一種適當(dāng)?shù)男问秸宫F(xiàn)成來(lái)。2010-12-12
基于JS實(shí)現(xiàn)動(dòng)態(tài)跟隨特效的示例代碼
這篇文章主要介紹了如何利用JavaScript實(shí)現(xiàn)動(dòng)態(tài)跟隨特效,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JS有一定的幫助,感興趣的小伙伴可以了解一下2022-06-06
el-input限制輸入只允許輸入浮點(diǎn)型的解決思路
本文主要是記錄,el-input怎么限制輸入只允許輸入浮點(diǎn)型,注意是輸入的時(shí)候限制只允許輸入浮點(diǎn)型,而不是輸入完提交的時(shí)候再校驗(yàn)提示,感興趣的朋友跟隨小編一起看看吧2024-03-03
Bootstrap3使用typeahead插件實(shí)現(xiàn)自動(dòng)補(bǔ)全功能
這篇文章主要介紹了Bootstrap3使用typeahead插件實(shí)現(xiàn)自動(dòng)補(bǔ)全功能的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
js實(shí)現(xiàn)兩個(gè)值相加alert出來(lái)精確到指定位
兩個(gè)值相加精確指定位數(shù)在alert出來(lái),下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下2013-09-09
JS實(shí)現(xiàn)讀取xml內(nèi)容并輸出到div中的方法示例
這篇文章主要介紹了JS實(shí)現(xiàn)讀取xml內(nèi)容并輸出到div中的方法,涉及javascript針對(duì)xml格式數(shù)據(jù)的讀取、遍歷、輸出等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04

