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 相关文章推荐
jquery 实现的全选和反选
Apr 15 Javascript
jquery中animate动画积累的解决方法
Oct 05 Javascript
原生JS实现匀速图片轮播动画
Oct 18 Javascript
Bootstrap基本组件学习笔记之导航(10)
Dec 07 Javascript
Vue.js对象转换实例
Jun 07 Javascript
React Native仿美团下拉菜单的实例代码
Aug 08 Javascript
微信小程序 如何保持登录状态
Aug 16 Javascript
微信小程序和H5页面间相互跳转代码实例
Sep 19 Javascript
JS中FormData类实现文件上传
Mar 27 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
Apr 11 Javascript
vue-cli 关闭热更新操作
Sep 18 Javascript
js 将多个对象合并成一个对象 assign方法的实现
Sep 24 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
谈谈PHP语法(2)
2006/10/09 PHP
PHP 日常开发小技巧
2009/09/23 PHP
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
DHTML Slide Show script图片轮换
2008/03/03 Javascript
extjs form textfield的隐藏方法
2008/12/29 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
ES2020 新特性(种草)
2020/01/12 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
win10 64bit下python NLTK安装教程
2018/09/19 Python
pandas实现将dataframe满足某一条件的值选出
2019/06/12 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
房地产销售大学生自我评价分享
2013/11/11 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
初中军训感言
2015/08/01 职场文书
MySQL分区表管理命令汇总
2022/03/21 MySQL
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript