images?iamges?
1.li[i].i=i; 里面.i是我们人为给它设置的一个属性,这个属性你可以自己命名,li[i].abcd=i都可以,你可以理解为我们在li[i]中给它设置了一个变量,属于li[i]的变量,所以下边使用的时候,我们就得 this.abcd 这么写哈
2.其实我个人试了一下,减不减一都行的,减一之后,二级菜单的高度始终都会比一级菜单高一个li的高度,如果不减一的话,二级菜单就会和当前的li一样高,看起来整体效果就被破坏了,所以我觉得这才是老师要减一的用意。
图片无法显示?
getComputedStyle(div,false)['top']; //其他
div.currentStyle['top']; //ie
问题太模糊,不清楚其它层具体指什么?
如果其它层值的是其它大类的话,看视频里仔细一点,会发现老师是把提前写好的html内容复制到演示时用到的文件里的。
因为你把 .topmenu 去掉之后它的权重不够,设置的样式没有覆盖之前设置的样式;
代码如下(31行-43行):
.topmenu li { height: 30px; line-height: 30px; /*高度仍然使用的是这里设置的高度*/ font-size: 11pt; list-style-type: none; text-align: left; padding-left: 8px; z-index: 3; background-image: url(http://img.mukewang.com/5411027300014f0200220030.jpg); background-repeat: no-repeat; background-position: right; }
谢谢 我问完我自己就懂了 还是很谢谢你 。
我觉得不减1,看起来更好看,减去1,反而有点突兀
可能由于浏览器的原因可以试试这样offsetHeight = height + padding + border
是 getElementsByClassName() ,没有你写的getElementsClassName()方法
JS是闭包的,只会保存最后一个值
offsetHeight获取的是数值,如offsetHeight=12;
this.style.height获取的是属性值,this.style.height=12px;
解决了,是ie默认情况 dl 会有边距,把 dl 的padding 和 margin 都设成 0 显示效果就相同了。另外,在 ff 和 ie 下,都应该是 i 而不是 ( i-1 )
你用chrome 打开慕课网,按F12打开调试工具,在console 里敲以下代码:
var commentBar=document.getElementById("edui2"); commentBar.style.height="100px";
你会发现,评论框工具条的高度变得很高。这说明DOM元素的style 属性是可以直接读写的。
如果老师告诉你不能直接读写,我想可能有两种情况:
老师并不是真的说style说行不能直接读写,而是用一个函数来做这件事,解决兼容性,和容错问题。建议你在重新听一下老师的说法
DOM元素的的configure(慕课一个JS进阶的教程里有详细的讲解) 属性被人为改成了false,不能更改元素的属性
这是错误反馈和代码
用下overflow应该可以吧,我是新手。希望能帮到你,不行的话,勿怪。
var _this=this;
getclsname('submenu',_this)[0] 这样可以么 ?我也没试过啊 那个有onmouseleave事件吗 ?
你的JS运行的时候你的页面还没有加载完成,所以你的JS代码找不到你的页面元素,就会抛出这个问题
调式代码:打开浏览器,按f12 你想看那个元素的鼠标经过事件,点击鼠标右键就可以了,有hover状态
IE6-8兼容性是很大的问题,你要贴代码出来,善于运用调试工具,善于搜集hack知识,积累的多了,自然就知道了
你应该说的是style.top和offset.top吧
style.top指的是你在css中定义了的top值,而offset.top是指div内部的top值
判断的意思是判断二级的div的底部位置和一级菜单对应的栏的高度差来判断是否错位了,如果他们的差值是正数说明二级在一级上已经错位,所以需要加上一个top*h的像素高才能看的是一一对应的
.style.top是带单位“px”的,而offsetTop是不带单位的。比如:
.box{position:absolute; top:20px;}
其中,.style.top="20px",而offsetTop=20;
i是行数,取上边的top值就是上一个li的底边,所以-1,*30是每行li的高度,+42是标题栏的高度
我懂你的意思 不过我不知道怎么做到的。你可以在日常自己打代码时形成那样的习惯,不同的编辑器有不同的
style.top只能取嵌入式的样式,如果top不是嵌入式样式,显然是取不到的。
可以用下面的函数来取:
function getStyle(dom,style){ if(dom.currentStyle){ return dom.currentStyle[style]; }else{ return getComputedStyle(dom,null)[style]; } } // 第一个参数,是你要取样式的那个元素。比如要取一个 id为d的div的top var div = document.getElementById('d'); getStyle(div,"top");
因为它不够长还是提了上去