• js运动:多div变宽、二级菜单


    定时器及运动函数。

    多div变宽:

    <!--
    Author: XiaoWen
    Create a file: 2016-12-13 09:36:30
    Last modified: 2016-12-13 12:24:18
    Start to work:
    Finish the work:
    Other information:
    -->
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>js多div变宽</title>
      <style>
        div{
          width: 100px;
          height: 40px;
          background: #f00;
          margin-bottom: 20px;
        }
      </style>
    </head>
    <body>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <script>
      var a_div=document.getElementsByTagName('div');
      console.log(a_div)
      var timer=null;
      for(var i=0;i<a_div.length;i++){
        a_div[i].onmouseover=function(){
          startMove(this,400);
        };
        a_div[i].onmouseout=function(){
          startMove(this,100);
        };
      };
      function getStyle(obj,attr){
        if(obj.currentStyle){
          return obj.currentStyle[attr];
        }else{
          return getComputedStyle(obj)[attr];
        };
      };
      var speed;
      function startMove(obj,iTarget){
        clearInterval(obj.timer);
        obj.timer=setInterval(function(){
          //当目标比自身小时向上,当目标比自身大时向下
          //当目标比较大时,会一直加,如果不向上取会少加
          //当目标比较小时,会一直减,如果不向上取会少减
    
          //不怕多加,也不怕多减,因为只要到达目标值都会结束运行。
          //多加时是正数,向上取才能多
          //多减时是负数,向下取才能让负数更大
          var speed=(iTarget-parseInt(getStyle(obj,'width')))/8;
          if(speed<0){
            speed=Math.floor(speed);
          }else{
            speed=Math.ceil(speed);
          };
          if(parseInt(getStyle(obj,'width'))==iTarget){
            clearInterval(obj.timer);
          }else{
            obj.style.width=parseInt(getStyle(obj,'width'))+speed+'px';
          };
        },10);
      };
    </script>
    </body>
    </html>

    二级菜单:

     二级菜单

    <!--
    Author: XiaoWen
    Create a file: 2016-12-13 09:36:30
    Last modified: 2016-12-13 16:29:44
    Start to work:
    Finish the work:
    Other information:
    -->
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>js多div变宽</title>
      <style>
        *{
          margin: 0;
          padding: 0;
        }
        #tag{
          height: 40px;
          background: #ccc;
        }
        ul,li{
          list-style: none;
        }
        #tag li{
          width: 150px;
          height: 40px;
          float: left;
          background: #ddd;
          position: relative;
          overflow: hidden;
        }
        #tag li a{
          display: block;
          width: 150px;
          height: 40px;
        }
        #tag li div{
          width: 150px;
          height: 400px;
          background: #eee;
        }
      </style>
    </head>
    <body>
    <div id="box">
      <div id="tag">
        <ul>
          <li>
            <a href="#">1</a>
            <div>11</div>
          </li>
          <li>
            <a href="#">2</a>
            <div>22</div>
          </li>
          <li>
            <a href="#">3</a>
            <div>33</div>
          </li>
          <li>
            <a href="#">4</a>
            <div>44</div>
          </li>
          <li>
            <a href="#">5</a>
            <div>55</div>
          </li>
          <li>
            <a href="#">6</a>
            <div>66</div>
          </li>
        </ul>
      </div>
    </div>
    <script>
     var cont=document.getElementById('tag');
      var a_li=cont.getElementsByTagName('li');
      var a_div=cont.getElementsByTagName('div');
      var timer=null;
      for(var i=0;i<a_li.length;i++){
        a_li[i].onmouseover=function(){
          startMove(this,'height',400);
        };
        a_li[i].onmouseout=function(){
          startMove(this,'height',40);
        };
      };
      function startMove(obj,attr,iTarget){
        clearInterval(obj.timer);
        obj.timer=setInterval(function(){
          var speed=(iTarget-parseInt(getStyle(obj,attr)))/8;
          var speed=speed>0? Math.ceil(speed) : Math.floor(speed);
          if(speed==iTarget){
            clearInterval(obj.timer);
          }else{
            obj.style[attr]=parseInt(getStyle(obj,attr))+speed+'px';
          };
        },50);
      };
      function getStyle(obj,attr){
        if(obj.currentStyle){
          return obj.currentStyle[attr];
        }else{
          return getComputedStyle(obj)[attr];
        }
      }
    </script>
    </body>
    </html>
  • 相关阅读:
    离开页面时提示用户
    返回顶部
    【转】 MySQL主从(Master-Slave)复制
    判断是否到达指定时间,可以精确到秒
    【转】tomcat优化-有改protocol 和 缓存 集群方案
    【转】Spring+Websocket实现消息的推送
    【转】SpringMVC整合websocket实现消息推送及触发
    【转】java即时消息推送
    大型网站对图片的下载,存放,及压缩管理
    简单的linux压力测试工具webbench
  • 原文地址:https://www.cnblogs.com/daysme/p/6169384.html
Copyright © 2020-2023  润新知