首页 > Web开发 > 详细

JS学习笔记 - 透明度运动框

时间:2018-12-26 14:56:10      阅读:162      评论:0      收藏:0      [点我收藏+]

 

该练习的笔记如下:

1.  var cur=0;  //先声明一个变量。

2.  parseInt会舍掉小数,而opacity值恰恰是小数,所以对于opacity,必须用parseFloat。

cur=parseFloat(getStyle(obj, attr))*100;

3.

a.  ‘+ var +‘ 字符串中引入变量的格式。

b. 透明度兼容性问题,需要2种分别赋值。

if(attr==‘opacity‘)
          {
            obj.style.filter=‘alpha(opacity:‘+(cur+speed)+‘)‘; 
            obj.style.opacity=(cur+speed)/100; 
          }

 

疑点:

这里字符串变量连接没有括号? 需要搞清楚、熟记字符串连接规则的部分。

obj.style[attr]=cur+speed+‘px‘;

 

<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>无标题文档</title>
  <style>
    div {width:200px; height:200px; margin:20px; float:left; background:yellow; border:10px solid black; filter:alpha(opacity:30); opacity:0.3;}
  </style>
  <script>
    window.onload=function ()
    {
      var oDiv1=document.getElementById(div1);

      oDiv1.onmouseover=function ()
      {
        startMove(this, opacity, 100);
      };
      oDiv1.onmouseout=function ()
      {
        startMove(this, opacity, 30);
      };
    };

    function getStyle(obj, name)
    {
      if(obj.currentStyle)
      {
        return obj.currentStyle[name];
      }
      else
      {
        return getComputedStyle(obj, false)[name];
      }
    }

    function startMove(obj, attr, iTarget)
    {
      clearInterval(obj.timer);
      obj.timer=setInterval(function (){
        var cur=0;  //先声明一个变量

        if(attr==opacity)
        {
          cur=parseFloat(getStyle(obj, attr))*100;   //parseInt会舍掉小数,而opacity值恰恰是小数,所以必须用parseFloat。
        }
        else
        {
          cur=parseInt(getStyle(obj, attr));
        }

        var speed=(iTarget-cur)/6;
        speed=speed>0?Math.ceil(speed):Math.floor(speed);

        if(cur==iTarget)
        {
          clearInterval(obj.timer);
        }
        else
        {
          if(attr==opacity)
          {
            obj.style.filter=alpha(opacity:+(cur+speed)+); // ‘+ var +‘  字符串中引入变量的格式。
            obj.style.opacity=(cur+speed)/100;   //透明度兼容性问题需要2种分别赋值。
          }
          else
          {
            obj.style[attr]=cur+speed+px; //这里的字符串连接方式?
          }
        }
      }, 30);
    }
  </script>
</head>

<body>
<div id="div1"></div>
</body>
</html>

 

JS学习笔记 - 透明度运动框

原文:https://www.cnblogs.com/carpenterzoe/p/10179077.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!