透明度改变不了,提示currentStyle没有定义

来源:4-4 任意属性值(二)

qq_Justcomplete_04021004

2017-09-08 20:46

http://img.mukewang.com/59b291170001ead813660768.jpg

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <style>
       ul,li{
           list-style: none;
       }
       li{
           width: 200px;
           height:100px;
           background: yellow;
           margin-bottom: 20px;
           border:1px solid black;
           filter:alpha(opacity:30);
           opacity:0.3 ;
       }
   </style>
   <script>
       window.onload=function () {
//            var ali=document.getElementsByTagName('li');
//            for(var i=0;i<ali.length;i++){
//                ali[i].timer=null;//各自加一个定时器
//                ali[i].onmouseover=function () {
//                    startmove(this,'height',300);
//                }
//                ali[i].onmouseout=function () {
//                    startmove(this, 'height', 100);
//                }
//            }
var li1=document.getElementById('li1');
           var li2=document.getElementById('li2');
           li1.onmouseover=function () {
               startmove(this,'opacity',100);
           }
           li1.onmouseout=function () {
               startmove(this,'opacity',30);
           }
           li2.onmouseover=function () {
               startmove(this,'width',300);
           }
           li2.onmouseout=function () {
               startmove(this,'width',100);
           }
       }
       //var timer=null;
function getStyle(obj,attr){
           if(obj.currentStyle){
               return obj.currentStyle[attr];
           }
           else{
               return getComputedStyle(obj,false)[attr];
           }
       }
       var alpha=30;
       function  startmove(obj,attr,target) {
           //clearInterval(timer)清空的是共同的定时器,没有清空各自的定时器
clearInterval(obj.timer);
           obj.timer=setInterval(function () {
               var icur=0;
               if(attr=='opacity'){
                   icur=parseFloat(getStyle(obj.attr))*100;
               }else{
                   icur=parseInt(getStyle(obj,attr));
               }
               var speed=(target-icur)/8;
               speed=speed>0?Math.ceil(speed):Math.floor(speed);
               if(icur==target){
                   clearInterval(obj.timer);
               }
               else{
                   if(attr=='opacity'){
                       obj.style.filter='alpha(opacity:'+(icur+speed)+')';
                       obj.style.opacity=(icur+speed)/100;
                   }
                   else {
                       obj.style[attr] = icur + speed + 'px';
                   }
               }
           },50)
       }
   </script>
</head>
<body>

</body>
<ul>
   <li id="li1"></li>
   <li id="li2"></li>

</ul>
</html>

写回答 关注

2回答

  • qq_活在当下_30
    2017-09-09 17:17:02
    已采纳

    http://img.mukewang.com/59b3b14c0001d02a09910615.jpg
    小细节 不仔细看 很难发现

    qq_活在当... 回复qq_Jus...

    还有内容尽量写在body里面(你可以把画布改下背景 看着不觉得难受吗 个人感觉)

    2017-09-09 17:47:59

    共 2 条回复 >

  • 慕仙5237505
    2017-11-01 19:31:36

    哇,老师写错了,我发现了,看它的有用就没改

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题