我正在尝试在div
上实现一个小动画。每当我们点击div
时,它必须向右移动。我写了一些代码,但它没有用。有人可以帮帮我吗?
这是我的代码
<style type="text/css">
#animDiv
{
background-color:#6F0;
width:87px;
height:39px;
left:10px;
}
</style>
<script>
function $(id)
{
return document.getElementById(id);
}
function moveRight()
{
var elem = $("animDiv");
//var divPos = parseInt($("animDiv").style.left);
var divPos = $("animDiv").offsetLeft;
var divWid = $("animDiv").offsetWidth;
if(divPos+divWid < 700)
{
$("animDiv").style.left = $("animDiv").style.left+100+"px";
}
}
</script>
<body>
<div id="animDiv" onclick="moveLeft()">
</div>
</body>
答案 0 :(得分:2)
尝试替换此代码
<div id="animDiv" onclick="moveLeft()">
使用此代码
<div id="animDiv" onclick="moveRight()">
并将样式position:fixed;
添加到您的CSS中。
答案 1 :(得分:0)
您的代码中存在以下几个问题:
moveRight()
left
属性,该属性不会对静态定位的元素产生任何影响。left
属性的值类似于100px100px
。这是怎么回事:
function moveRight() {
var elem = $("animDiv");
//var divPos = parseInt($("animDiv").style.left);
var divPos = $("animDiv").offsetLeft;
var divWid = $("animDiv").offsetWidth;
if (divPos + divWid < 700) {
var curLeft = Number($("animDiv").style.left.replace("px", ""));
$("animDiv").style.left = (curLeft + 100) + "px";
}
}