最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How do i make a div animate diagonally? - Stack Overflow

programmeradmin3浏览0评论

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
Add a ment  | 

4 Answers 4

Reset to default 4

You 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...!!!

发布评论

评论列表(0)

  1. 暂无评论