哟西哟西 2016-09-26 15:41 采纳率: 0%
浏览 1036

为什么个程序没出现错误,但是就是运行不对

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
body{text-align: center;}
#ad{height: 5px;display: none;}
</style>
<script type="text/javascript">
function getStyle(obj,attr){
if(obj.currentStyle) {
      return obj.currentStyle[attr];
} else if(window.getComputedStyle) {
    return window.getComputedStyle(obj,null)[attr];
}
}
window.onload=function(){
var oad=document.getElementById('ad');
var oadHeight=getStyle(oad,"height");
var timer;
var h=0;
setTimeout(function(){
oad.style.display="block";
timer=setInterval(function(){//执行不到
if(oadHeight<200){
h=h+5;
oad.style.height=h+'px';
}else{
clearInterval(timer);
}
},30)
},2000)
}
</script>
</head>
<body>
<div id="ad"><img src="./ad.png"></div>
<div class="goods"><img src="./数字商品-10-23.jpg"></div>
</body>
<html>
  • 写回答

1条回答 默认 最新

  • leewers 2016-09-26 17:59
    关注

    因为oadHeight返回的不是"5",而是"5px", 那么在执行if(oadHeight < 200)的时候,就相当于if("5px" < 200), 在js中一个非纯数字字符串在和一个数字比较时,该字符串被自动转成NaN, 而NaN与任何数字比较都会返回false,因此以上判断返回false,所以执行else中的语句,清楚定时器timer,结束。因此就出现了执行不到if中语句的现象。

    评论

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b