JS实现slide文字框缩放伸展效果代码


Posted in Javascript onNovember 05, 2015

本文实例讲述了JS实现slide文字框缩放伸展效果代码。分享给大家供大家参考,具体如下:

这里介绍的slide文字框缩放伸展效果,自己闲来无事写的,不是太好,可能在兼容性方面还需努力,展开速度方面,IE8和火狐的展开速度不一样,火狐下更快一些,至今没找到原因,也请JS高人指点江山。

运行效果截图如下:

JS实现slide文字框缩放伸展效果代码

在线演示地址如下:

具体代码如下:

<!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 阳光企业网站系统</a></li>
  <li><a href="#" target="_blank">24点,VC++游戏源码</a></li>
  <li><a href="#" target="_blank">可记录图像的C#数据库记录单程序</a></li>
  <li><a href="#" target="_blank">jQuery 1.4 参考指南的实例源代码</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 阳光企业网站系统</a></li>
  <li><a href="#" target="_blank">24点,VC++游戏源码</a></li>
  <li><a href="#" target="_blank">可记录图像的C#数据库记录单程序</a></li>
  <li><a href="#" target="_blank">jQuery 1.4 参考指南的实例源代码</a></li>
    </ul> 
   </div>
  </div>
  <script type="text/javascript">
   var mySlide = new Slide("box","slide","box_content",10); 
   mySlide._slideEvent();
  </script>
 </body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
摘自百度的图片轮换效果代码
Nov 19 Javascript
js中typeof的用法汇总
Dec 12 Javascript
HTML页面登录时的JS验证方法
May 28 Javascript
jQuery Migrate 1.1.0 Released 注意事项
Jun 14 Javascript
详解JavaScript的表达式与运算符
Nov 30 Javascript
AngularJS基础 ng-options 指令详解
Aug 02 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
Vue仿今日头条实例详解
Feb 06 Javascript
在vue中,v-for的索引index在html中的使用方法
Mar 06 Javascript
React Native基础入门之初步使用Flexbox布局
Jul 02 Javascript
详解 微信小程序开发框架(MINA)
May 17 Javascript
详解JavaScript中的链式调用
Nov 27 Javascript
如何防止JavaScript自动插入分号
Nov 05 #Javascript
javascript常用函数(2)
Nov 05 #Javascript
使用JavaScript和CSS实现文本隔行换色的方法
Nov 04 #Javascript
javascript常用函数(1)
Nov 04 #Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
Nov 04 #Javascript
jQuery多条件筛选如何实现
Nov 04 #Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
Nov 04 #Javascript
You might like
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
vue项目中openlayers绘制行政区划
2020/12/24 Vue.js
详细解析Python当中的数据类型和变量
2015/04/25 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
Python3中的json模块使用详解
2018/05/05 Python
python模块如何查看
2020/06/16 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
NBA欧洲商店(西班牙):NBA Europe Store ES
2019/04/16 全球购物
创建市级文明单位实施方案
2014/03/01 职场文书
党员公开承诺书范文
2014/03/25 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
人与自然的观后感
2015/06/18 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书