实在是不知道}哪里错了?

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

MY裴秀智4043005

2016-12-11 09:48


<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

<style>

body,ul{

margin: 0;

padding: 0;

}


ul,li{

list-style: none;

}

ul li{

width: 200px;

height: 100px;

background: yellow;

margin-bottom: 20px;

border:4px solid #ddd;

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,400);

// }

// aLi[i].onmouseout =function(){

// startMove(this,200);

// }

// }

// alert(Math.round(3.4));

var Li1 =document.getElementById('li1');

var Li2 =document.getElementById('li2');

Li1.onmouseover =function(){

startMove(this,'opacity',100);

}

Li1.onmouseout =function(){

startMove(this,'opacity',30);

}


function getStyle(obj,attr){

if (obj.currentStyle) {

return obj.currentStyle[attr];

}

else{

return getComputedStyle(obj,false)[attr];

}

}


var alpha =30;

function startMove(obj,attr,iTarget){

clearInterval(obj.timer);

obj.timer =setInterval(function(){

var icur = 0;

if (attr =='opacity') {

icur = Math.round( parseFloat(getStyle(obj.attr))*100);

}

else{

icur = parseInt(getStyle(obj,attr));

}

var speed =(iTarget-icur)/8;

speed=speed>0?Math.ceil(speed):Math.floor(speed);

if (icur==iTarget) {

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';

}

}

},30)

}

</script>

</head>

<body>

<ul>

<li id="li1"  style="opacity:0.3;"></li>



</ul>

</body>

</html>


写回答 关注

3回答

  • 电饭锅的规划
    2016-12-11 20:41:49
    已采纳

    细心点。

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8">

    <title></title>

    <style>

    body,ul{

    margin: 0;

    padding: 0;

    }


    ul,li{

    list-style: none;

    }

    ul li{

    width: 200px;

    height: 100px;

    background: yellow;

    margin-bottom: 20px;

    border:4px solid #ddd;

    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,400);

    // }

    // aLi[i].onmouseout =function(){

    // startMove(this,200);

    // }

    // }

    // alert(Math.round(3.4));

    var Li1 =document.getElementById('li1');

    var Li2 =document.getElementById('li2');

    Li1.onmouseover =function(){

    startMove(this,'opacity',100);

    };

    Li1.onmouseout =function(){

    startMove(this,'opacity',30);

    };



    function getStyle(obj,attr){

     if(obj.currentStyle) 

    {

     return obj.currentStyle[attr];

    }

    else{

      return getComputedStyle(obj,false)[attr];

    }

    }


    var alpha =30;

    function startMove(obj,attr,iTarget){

    clearInterval(obj.timer);

    obj.timer =setInterval(function(){

    var icur = 0;

    if (attr =='opacity') {

    icur =Math.round( parseFloat(getStyle(obj,attr))*100);

    }

    else{

    icur = parseInt(getStyle(obj,attr));

    }

    var speed =(iTarget-icur)/8;

    speed=speed>0?Math.ceil(speed):Math.floor(speed);

    if (icur==iTarget) {

    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';

    }

    }

    },30);

    }

    };

    </script>

    </head>

    <body>

    <ul>

    <li id="li1"  ></li>



    </ul>

    </body>

    </html>


    MY裴秀智4...

    非常感谢!你真厉害,满分~~~

    2016-12-12 19:53:06

    共 3 条回复 >

  • 电饭锅的规划
    2016-12-11 20:53:57

    图片上次太卡了,直接说。

    一,你最后少了个花括号。

    二,

    var icur = 0;

    if (attr =='opacity') {

    icur = Math.round( parseFloat(getStyle(obj.attr))*100);

    }

    你看getStyle(obj.attr),用的是点号,换句号就好了。

    燕赵D悲歌

    厉害了!稍微给大佬修正一下最后一句话:换成“逗号”就好了

    2016-12-11 21:00:28

    共 1 条回复 >

  • 燕赵D悲歌
    2016-12-11 20:41:16

    我也找了半天,只看到

    line:82

    有一个

    Uncaught SyntaxError: Unexpected end of input

    但找不到错误原因。。。。。

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题