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 相关文章推荐
javascript smipleChart 简单图标类
Jan 12 Javascript
JavaScript 更严格的相等 [译]
Sep 20 Javascript
『jQuery』名称冲突使用noConflict方法解决
Apr 22 Javascript
JavaScript实现给按钮加上双重动作的方法
Aug 14 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
Dec 01 Javascript
字符串反转_JavaScript
Apr 28 Javascript
Google 地图类型详解及示例代码
Aug 06 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
Dec 08 Javascript
原生js验证简洁注册登录页面
Dec 17 Javascript
JS实现自定义状态栏动画文字效果示例
Oct 12 Javascript
vue 源码解析之虚拟Dom-render
Aug 26 Javascript
axios实现文件上传并获取进度
Mar 25 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
探讨php中header的用法详解
2013/06/07 PHP
漂亮的提示信息(带箭头)
2007/03/21 Javascript
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
Exjs 入门篇
2010/04/07 Javascript
js对象的构造和继承实现代码
2010/12/05 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
jQuery使用方法
2017/02/04 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
举例详解Python中的split()函数的使用方法
2015/04/07 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
J2EE是技术还是平台还是框架
2016/08/14 面试题
优秀毕业生推荐信
2013/11/02 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
岗位说明书范文
2014/05/07 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
浅谈MySQL user权限表
2021/06/18 MySQL