为了账号安全,请及时绑定邮箱和手机立即绑定

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

http://img1.sycdn.imooc.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 回答

http://img1.sycdn.imooc.com//59b3b14c0001d02a09910615.jpg
小细节 不仔细看 很难发现

0 回复 有任何疑惑可以回复我~
#1

qq_Justcomplete_04021004 提问者

我天,太感谢了,这么细都找出来了
2017-09-09 回复 有任何疑惑可以回复我~
#2

qq_活在当下_30 回复 qq_Justcomplete_04021004 提问者

还有内容尽量写在body里面(你可以把画布改下背景 看着不觉得难受吗 个人感觉)
2017-09-09 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JS动画效果
  • 参与学习       113926    人
  • 解答问题       1443    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信