注册 登录
编程论坛 JavaScript论坛

大家好,新人问题,希望老鸟指点迷津,谢谢

shiguang112 发布于 2017-05-06 10:04, 3151 次点击
老鸟们好:

我是新鸟刚刚接触JS,看到网上一个图片滚动的JS其中有几个问题始终想不明白,还请有经验的老鸟指点,谢谢。
程序如下:
<html>
<head>

</head>
<body>
<style type="text/css">
<!--
#demo {
background: #FFF;
overflow:hidden;
border: 1px dashed #CCC;
width: 500px;
}
#demo img {
border: 3px solid #F2F2F2;
}
#indemo {
float: left;
width: 800%;
}
#demo1 {
float: left;
}
#demo2 {
float: left;
}
-->
</style>
<div id="demo">
<div id="indemo">
<div id="demo1">
<a href="#"><img src="/jscss/demoimg/wall_s1.jpg" border="0" /></a>
<a href="#"><img src="/jscss/demoimg/wall_s2.jpg" border="0" /></a>
<a href="#"><img src="/jscss/demoimg/wall_s3.jpg" border="0" /></a>
<a href="#"><img src="/jscss/demoimg/wall_s4.jpg" border="0" /></a>
<a href="#"><img src="/jscss/demoimg/wall_s5.jpg" border="0" /></a>
<a href="#"><img src="/jscss/demoimg/wall_s6.jpg" border="0" /></a>
</div>
<div id="demo2"></div>
</div>
</div>
<script>
<!--
var speed=10;
var tab=document.getElementById("demo");
var tab1=document.getElementById("demo1");
var tab2=document.getElementById("demo2");
tab2.innerHTML=tab1.innerHTML;
function Marquee(){
if(tab2.offsetWidth-tab.scrollLeft<=0)
tab.scrollLeft-=tab1.offsetWidth
else{
tab.scrollLeft++;
}
}
var MyMar=setInterval(Marquee,speed);
tab.onmouseover=function() {clearInterval(MyMar)};
tab.onmouseout=function() {MyMar=setInterval(Marquee,speed)};
-->
</script>
</body>
</html>

请问下面tab,tab1,tab2取得是什么值啊?tab取的是width500px的区域么?tab1和tab2呢?取得是六个图片加在一起的区域么?
var tab=document.getElementById("demo");
var tab1=document.getElementById("demo1");
var tab2=document.getElementById("demo2");
4 回复
#2
凌风zx2017-05-06 13:41
这里取的是div这个元素,不能说是某块区域

取到后可以对这个元素做一些操作

例如:修改它包含的内容tab1.innerHTML="<a href="#"><img src="/jscss/demoimg/wall_s1.jpg" border="0" /></a> ";
让他只包含一个图片

也可修改他的属性:例如 tab1.height="100px";
#3
shiguang1122017-05-06 14:18
大侠,那就是说如果我定义了一个demo
#demo{width:500px}
然后建立图层在其中调用demo模式后加入两个图片
<div id="demo">
<img src="/jscss/demoimg/wall_s1.jpg" border="0" />
<img src="/jscss/demoimg/wall_s2.jpg" border="0" />
</div>
之后我用getElementById提取元素
var tab=document.getElementById("demo");
请问这时tab提取的是demo{width:500px}还是这两个图片。。。
有什么方法或命令可以显示tab提取的值么?
#4
凌风zx2017-05-06 15:47
既不是demo  也不是图片

#demo{width:500px}:这叫样式,也就是css
 tab取到的是id叫demo的元素,也就是这里的div
即:
<div id="demo">
<img src="/jscss/demoimg/wall_s1.jpg" border="0" />
<img src="/jscss/demoimg/wall_s2.jpg" border="0" />
</div>

如果我随便定义一个元素如<input id='demo'/> 那取得就是input了

看的方式有很多,你可以在浏览器按f12打开控制台,打个断点
或者直接在js里用debugger加断点
或者直接console.log(tab)(ie可能不支持)浏览器输出输出查看



#5
shiguang1122017-05-07 12:01
感谢,大侠,大侠一席话,我茅塞顿开。
1