JS配合css实现slide文字框缩放伸展效果

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content" content="text/html charset=gb2312">
<title>JS配合css实现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">收缩1</div>
   <div class="box_content">
    <ul class="uft" style="padding:10px;">
<li>
<a title="渐变彩色的文字" target="_blank" href="#">
渐变彩色的文字</a></li>
<li>
<a title="指定文字逐条显示" target="_blank" href="#">
指定文字逐条显示</a></li>
<li>
<a title="滚动的标题栏" target="_blank" href="#">
滚动的标题栏</a></li>
<li>
<a title="JS 4屏平滑滚动幻灯片特效" target="_blank" href="#">
JS 4屏平滑滚动幻灯片特效</a></li>
<li>
<a title="图片的无缝滚动(纵向、横向)" target="_blank" href="#">
图片的无缝滚动(纵向、横向)</a></li>
<li>
<a title="鼠标触及带边框的菜单" target="_blank" href="#">
鼠标触及带边框的菜单</a></li>
<li>
<a title="比较实用的CSS控制链接颜色效果" target="_blank" href="#">
比较实用的CSS控制链接颜色效果</a></li>
    </ul>
   </div>
  </div>
  <div class="box">
   <div class="oHx slide">收缩2</div>
   <div class="box_content">
<li>
<a title="超级漂亮的几款清新、常用的网页CSS布局配色实例" target="_blank" href="#">
超级漂亮的几款清新、常用的网页CSS布局配色实例</a></li>
<li>
<a title="CSS制作斜角上有背景图片的Div层" target="_blank" href="#">
CSS制作斜角上有背景图片的Div层</a></li>
<li>
<a title="Js实现的层展开、层折叠效果,默认时候层是折叠的" target="_blank" href="#">
Js实现的层展开、层折叠效果,默认时候层是折叠的</a></li>
<li>
<a title="DIV始终固定在网页右下角位置的CSS实现方法" target="_blank" href="#">
DIV始终固定在网页右下角位置的CSS实现方法</a></li>
<li>
<a title="JavaScript未知高度元素的垂直居中的方法" target="_blank" href="#">
JavaScript未知高度元素的垂直居中的方法-石家庄水泵厂-河北苗木</a></li>
<li>
<a title="渐变彩色的文字" target="_blank" href="#">
渐变彩色的文字</a></li>
<li>
<a title="指定文字逐条显示" target="_blank" href="#">
指定文字逐条显示</a></li>
<li>
<a title="滚动的标题栏" target="_blank" href="#">
滚动的标题栏</a></li>
    </ul>
   </div>
  </div>
  <script type="text/javascript">
   var mySlide = new Slide("box","slide","box_content",10);
   mySlide._slideEvent();
  </script>
 </body>
</html>
时间: 2024-11-09 17:48:03

JS配合css实现slide文字框缩放伸展效果的相关文章

JS配合CSS实现的漂亮渐变背景特效6个实例

<html> <head> <title>JS配合CSS实现的漂亮渐变背景特效6个实例|kiddy官网|河北运动地板</title> <script> var setGradient = (function(){ var p_dCanvas = document.createElement('canvas'); var p_useCanvas = !!( typeof(p_dCanvas.getContext) == 'function'); v

Js配合CSS实现的图片居中

CSS图上居中很好实现,但万恶的浏览器之间各不相让,搞的不兼容,还好我们有让其兼容的办法,那就是结合JS来实现,这样各个浏览器都听话多了.本例就是CSS结合JavaScript实现的图片垂直.水平方向都居中,也不是上下左右居中,位于网页的正中央,代码如下: <body onresize="myLoad()" > <div id="xuanma" style="Z-INDEX: 1; LEFT: 0px; POSITION: absolut

CSS3新vw, vh单位与纯CSS定位的弹框屏幕居中效果实例页面

在css中vw和vh分别代表所占的百分比,可以设置最外部的容器的宽高,但是都要结合百分比一起使用. 展示 回到相关文章 ? 图片宽度(目前1024像素): 128  1024 点击我出现图片弹框 代码CSS代码:.dialog_container {    display: none;    width: 100%;    width: 100vw;    height: 100%;    height: 100vh;    background-color: rgba(0,0,0,.35); 

纯css简单的警告框加抖动效果

这种效果的警告框,出错了会抖动 .alert-box { width: 400px; border-style: outset; position: relative; color:#555; border-radius:10px; font-family:Tahoma,Geneva,Arial,sans-serif;font-size:11px; padding:10px 10px 10px 10px; margin:auto; display: none; } .alert-box span

win7下,Ant 配合yuicompressor对js和css进行合并、压缩、拷贝处理

本文基于windows7系统,mac上或许更简单些.本文参阅了无墨来点睛的文章http://www.cnblogs.com/catprayer/archive/2011/08/03/2126719.html,再此说明. 花了点时间,总算是试验成功,demo地址:http://pan.baidu.com/s/1c0dGm1i ant可以去官网下载,地址是:http://ant.apache.org/ ,yuicompressor也可以去官网下一个https://github.com/yui/yui

[CSS揭秘]自定义单选框和复选框

很多Web前端工程师肯定都会遇到过,在项目中,UI设计师跑来跟你说,我这个地方的表单控件需要设计成这个样子那个样子.但是用CSS却不能够修改这些控件的默认样式,于是乎,只能通过div+javascript技术来进行模拟.特别是在如今移动端的崛起时代,更加注重用户的体验.于是就更加需要这样一种hack技术. 如果对如今的前端框架有过了解,都会知道组件这个概念.那么在这些框架中,都会提供一些单选框或复选框按钮组件.可见大家之前受到表单元素的默认样式的毒害有多深. 今天先给大家简单介绍一下如何通过CS

用纯css改变下拉列表select框的默认样式(转)

用纯css改变下拉列表select框的默认样式 分享到 分类 JS学习   关键字 前端   发布 kris  2015-04-01 注意 转载须保留原文链接,译文链接,作者译者等信息. 在这篇文章里,我将介绍如何不依赖JavaScript用纯css来改变下拉列表框的样式. 问题的提出 事情是这样的,您的设计师团队向您发送一个新的PSD(Photoshop文档),它是一个新的网站的最终设计. 一切看起来很好,很正常,直到你看到他/她设计的一个选择下拉框跟浏览器默认提供的样式有些不同!你说:“这没

JS利用 Sea.js 实现模块化:拖拽、缩放及范围限制

知识点总结: Sea.js的使用:define.export.seajs.use.require等方法:   参考:http://seajs.org/docs/ Sea.js与require.js的区别: 鼠标事件及位置的使用:mousedown.mousemove.mouseup.ev.clientX.ev.clientY: 初始化模块.拖拽模块.缩放模块.范围限制模块的实现. 一.index页面 <!DOCTYPE html> <html lang="en">

DOMContentLoaded时间触发与js,css,img的关联

DOMContentLoaded触发原理: 1.规范总是那么的晦涩,但至少有一点是可以明确了的,就是在JS(不包括动态插入的JS)执行完之后,才会触发DOMContentLoaded事件. 2.DOMContentLoaded事件本身不会等待CSS文件.图片.iframe加载完成.它的触发时机是:加载完页面,解析完所有标签(不包括执行CSS和JS),并如规范中所说的设置interactive 和执行每个静态的script标签中的JS,然后触发.而JS的执行,需要等待位于它前面的CSS加载(如果是