什么'这段用javascript移动css元素的代码错了
What's wrong with this code to move css elements with javascript?
我正在尝试用javascript移动一个元素。我搜索了一段时间,我认为这个代码应该起作用。。。但它没有,而且我在控制台中没有得到任何错误。。。有人能帮忙吗?
<html><body>
<script>
function move1(){
var cusid_ele = document.getElementsByClassName('zzz');
for (var i = 0; i < cusid_ele.length; ++i) {
var item = cusid_ele[i];
var x=item.style.top;
x+=10;
item.style.top=x;
}
}
function move2(){
var cusid_ele = document.getElementsByClassName('zzz');
for (var i = 0; i < cusid_ele.length; ++i) {
var item = cusid_ele[i];
var x=item.style["top"];
x+=10;
item.style["top"]=x;
}
}
function move3(){
var cusid_ele = document.getElementsByClassName('zzz');
for (var i = 0; i < cusid_ele.length; ++i) {
var item = cusid_ele[i];
var x=item.style["top"];
x+=10;
item.style["top"]=x+'px';
}
}
</script>
<input type=button onclick="move1();" value="Move (1st way, with .top=x)!">
<input type=button onclick="move2();" value="Move (2nd way, with [top]=x)!">
<input type=button onclick="move3();" value="Move (3rd way, with [top]=xpx)!">
<h3 class=zzz >Move me! (no inline style)</h3>
<h3 class=zzz style="top: 50px;">Move me! (with inline style)</h3>
</body></html>
顺便说一下,我试过FF和Chrome。。。
--接受的解决方案,我把它写在这里,这样人们就可以有一个工作的例子(谢谢Adeneo!):
<script>
function move1(){
var cusid_ele = document.getElementsByClassName('zzz');
for (var i = 0; i < cusid_ele.length; ++i) {
var item = cusid_ele[i];
var x = parseInt( item.style.top, 10 );
x+=10;
item.style.top=x+'px';
}
}
</script>
<input type=button onclick="move1();" value="Move!">
<h3 class=zzz >I cant move! (no css positioning)</h3>
<h3 class=zzz style="position: relative; top: 50px;">I can move! (with css positioning)</h3>
</body></html>
此
var x=item.style["top"];
返回字符串300px
等,因此
x += 10;
最终成为
300px10
所以更换
var x=item.style.top;
带有
var x = parseInt( item.style.top, 10 );
设置样式也是如此
element.style.top = x + 'px';
你必须使用一个带单位的字符串,为了让CSS真正发挥作用,元素必须定位在
FIDDLE
相关文章:
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 如何使用css动画/javascript使具有背景图像的元素出现
- JQuery-动态创建的元素css不起作用
- 如何使用jquery动态更改DOM元素CSS类
- JS+更改元素CSS+命名锚点
- Javascript获取元素CSS过渡阶段
- 聚合物元素css未显示-检查器中没有错误
- jQuery:获取元素 CSS 值
- 在按钮单击Javascript时添加元素CSS属性后动态更改元素CSS属性
- 中心元素css三维变换
- AngularJS:重置angular.元素CSS改变
- 我想悬停一个元素来影响其他元素css
- 多个存储元素.css()
- 如果窗口调整大小,jQuery将检查元素css属性
- 如何将元素css转换为JSON
- 在长时间执行过程之前和之后使用Jquery更改元素css
- 移除元素css后的::
- jQuery - 有没有办法“保存”dom元素(css)的状态并恢复到保存的状态等
- 渲染图像操作哪个更快:HTML5画布元素,还是操作DOM元素? 'CSS与JS/jQuery
- 如何保存一个网页快照与它的所有元素(css, js,图像,…)到一个文件