I am relatively proficient in html and css, but am not with javascript and jquery. I am trying to get a div to move diagonally, however its not working.
Here is my code:
<html>
<head>
<meta charset="utf-8">
<link href="style.css" rel="stylesheet"/>
<script type="text/javascript" src=".7.2.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function(){
$("#box1 div").animate({left: '+=150', top: '+=150'}, 1000);
});
</script>
<div id="box1"></div>
</body>
</html>
I know its probably something really stupid, but does anybody know what the problem is? Thanks!
I am relatively proficient in html and css, but am not with javascript and jquery. I am trying to get a div to move diagonally, however its not working.
Here is my code:
<html>
<head>
<meta charset="utf-8">
<link href="style.css" rel="stylesheet"/>
<script type="text/javascript" src="http://code.jquery./jquery-1.7.2.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function(){
$("#box1 div").animate({left: '+=150', top: '+=150'}, 1000);
});
</script>
<div id="box1"></div>
</body>
</html>
I know its probably something really stupid, but does anybody know what the problem is? Thanks!
Share Improve this question asked Jun 18, 2012 at 4:09 Liam WeilandLiam Weiland 912 silver badges5 bronze badges 3-
Look here jsfiddle/joycse06/jtTWy You selector should be
$('#box1')
not$('#box1 div')
. And you have to add some css. – Prasenjit Kumar Nag Commented Jun 18, 2012 at 4:16 - could also animate the margin instead of position – charlietfl Commented Jun 18, 2012 at 4:19
- This should not be downvoted. – Derek 朕會功夫 Commented Jun 18, 2012 at 4:21
4 Answers
Reset to default 4You have to first make it position: absolute
or relative
in CSS.
#box{
position: absolute;
}
$("#box1").animate({left: '+=150', top: '+=150'}, 1000);
Oh yeah, do this:
$("div#box1") //correct
instead of:
$("#box1 div") //incorrect
DEMO: http://jsfiddle/DerekL/bwg8R/
To animate something using left
and top
the element needs to be positioned. either relative
or absolute
, otherwise left
and top
don't do anything to the element.
See my example here: http://jsbin./ayafup/edit#html,live
And target your #box1
element directly as $(#box1)
, not all child div
's inside it as you're doing, $(#box1 div)
Also move your scripts down to the bottom before </body>
for better performance and better practice in general.
Give your div some position because left and top are used after position is set
<div id="box1" style="position:absolute;">s</div>
And in javascript
$("#box1 div").animate({left: '+=150', top: '+=150'}, 1000);
Should be
$("#box1").animate({left: '+=150', top: '+=150'}, 1000);
Because the previos one was selecting child of #box1
Here is the best solution I find for animations effects.. I you don't have any constraint to support older version of browser than animation of you will be like eating a cake..
Try this http://daneden.me/animate/
Cheers...!!!