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操作Select的Options的Bug(IE8兼容性视图模式)
Apr 21 Javascript
利用jquery写的左右轮播图特效
Feb 12 Javascript
js鼠标悬浮出现遮罩层的方法
Jan 28 Javascript
JS实现在网页中弹出一个输入框的方法
Mar 03 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
Mar 04 Javascript
CSS3 3D 技术手把手教你玩转
Sep 02 Javascript
解析Javascript单例模式概念与实例
Dec 05 Javascript
JS按条件 serialize() 对应标签的使用方法
Jul 24 Javascript
vue+vue-validator 表单验证功能的实现代码
Nov 13 Javascript
Vuex 使用 v-model 配合 state的方法
Nov 13 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
jQuery HTML设置内容和属性操作实例分析
May 20 jQuery
如何防止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初学者(入门学习经验谈)
2010/10/12 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
nodejs进阶(6)—连接MySQL数据库示例
2017/01/07 NodeJs
纯JS实现轮播图
2017/02/22 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
python 爬取微信文章
2016/01/30 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
python 2.7.14安装图文教程
2018/04/08 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
python如何更新包
2020/06/11 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
大学生饮食连锁店创业计划书
2014/01/17 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
个人近期表现材料
2014/02/11 职场文书