jQuery 动画不起作用

标签 jquery jquery-animate

代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="jQuery/jquery-1.8.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {           
        $(document).keydown(function () {
            alert("hello");
            $('div').animate({ left: '+=10px' }, 500);
        });
    });

</script>
<style type="text/css">
div
{
     height: 50px; width: 50px; background-color: Red;
}
</style>
</head>
<body>

<div></div>

</body>
</html>

我想在每次按下键时将我的 div 向右移动,但由于某种原因,这不起作用。我收到“你好”警报,因此动画语句中可能存在一些我无法弄清楚的小错误。

谁能告诉我为什么这不起作用以及正确的方法吗?

提前致谢。 :)

最佳答案

这是因为 left/top/right/bottom 属性仅适用于定位元素。

因此,您需要在 div 上使用 position:relative/position:absolute ,或者对 margin-left 进行动画处理。 (取决于您想要的最终结果..)

引自the specs

9.3.2 Box offsets: 'top', 'right', 'bottom', 'left'

An element is said to be positioned if its 'position' property has a value other than 'static'. Positioned elements generate positioned boxes, laid out according to four properties:

关于jQuery 动画不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13700477/

相关文章:

javascript - 所有子动画完成时回调

javascript - 在 ajax 请求上保持滚动位置

javascript - 使用 lazysizes 延迟加载背景图像

php - 处理数据库查询时如何混淆 JSON 响应?

jquery - 如何使用 jquery 验证插件为错误标签设置动画

php - 难以使用 MySQL、PHP、jQuery 和 Ajax 创建搜索功能

javascript - setTimeout 在几分钟后变得疯狂,FF6.0,Chrome 15

javascript - JQuery 动画设置超时

svg - 如何通过将固定位置保持在svg中来缩放元素

javascript - jQuery 动画 div 不工作