哟西哟西 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 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀