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

拜托大神帮我看一下为什么代码不执行

拜托大神帮我看一下为什么代码不执行

慕少5527016 2016-05-12 21:15:02
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>变宽高</title><style>li{ width:200px;height:100px;background:red;float: none;left:0;top: 0;margin-bottom: 20px;}</style><script type="text/javascript">window.onload=function(){var oli=document.getElementsByTagName('li');for( var i=0;i<oli.length;i++){oli[i].onmouseover=function(){startmove(400,"width",5);}oli[i].onmouseout=function(){startmove(200,"width",-5); }}var oli[i].timer=null;function startmove(oli[i],itarget,khg,speed){clearInterval(oli[i].timer);oli[i].timer=setInterval(function(){if (oli[i].style[khg]==itarget+"px") {clearInterval(oli[i].timer);}else{oli[i].style[khg]=parseInt(SBFH(oli[i],khg))+speed+'px';}},30)}function SBFH(obj,attr){if(obj.currentStyle){return obj.currentStyle[attr];}else{return getComputedStyle(obj,false)[attr];}}}</script></head><body><ul><li id="li1"></li><li id="li2"></li></ul></body>
查看完整描述

1 回答

?
一毛钱

TA贡献156条经验 获得超57个赞

你这个问题都没有办法改,你还没有分清数组是什么,好好看看数组和方法,方法传递上有问题,也不知道什么事作用域

var oli = document.getElementsByTagName('li');

        for (var i = 0; i < oli.length; i++) {

            oli[i].onmouseover = function() {

                startmove(oli[i], 400, "width", 5);

            }

            oli[i].onmouseout = function() {

                startmove(oli[i], 200, "width", -5);

            }

        }

        var oli[i].timer = null;

  1. 这个已经出了作用域了,你这里的i都不知道是什么了

  2. 你的方法"function startmove(oli[i],itarget,khg,speed)" oli[i]又超出了作用域

  3. startmove(200,"width",-5);你的方法是四个参数,你在这里传递了三个参数




查看完整回答
1 反对 回复 2016-05-13
  • 慕少5527016
    慕少5527016
    谢谢呀~我重新再写
  • 一毛钱
    一毛钱
    写完发上来,发的时候注意格式
  • 慕少5527016
    慕少5527016
    不好意思呀,刚看到有信息回复提示o(=•ェ•=)m我重写了代码宽高可以变了,但我加上透明度后出现了新BUG,无论我怎么变变量,都是透明度在变(⊙︿⊙)
点击展开后面3
  • 1 回答
  • 0 关注
  • 1579 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信