javascript - jQuery animate 没有效果?

标签 javascript jquery html css

我只是在玩弄一些 HTML、CSS、JavaScript 和 jQuery,出于某种原因,我的 jQuery 根本不会做任何事情。

也就是我点了一个圆,动画没有效果。
控制台没有错误。

我没有正确链接吗?每个文件都在同一个文件夹中。

$('.circle').click (function () {
    $('#c1').animate ( {
        left: '0px'
    }, 200);

    $('#c2').animate ( {
        left: '285px'
    }, 200);
} );
.loader {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 404px;
}
.circle {
    height: 50px;
    width: 50px;
    border-radius: 100%;
    display: inline-block;
    margin: 7px;
}

#c1 { background-color: #4285f4; }
#c2 { background-color: #EA4335; }
#c3 { background-color: #FCBD06; }
#c4 { background-color: #4285F4; }
#c5 { background-color: #34AA54; }
#c6 { background-color: #EA4335; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="loader">
    <div class="circle" id='c1'></div>
    <div class="circle" id='c2'></div>
    <div class="circle" id='c3'></div>
    <div class="circle" id='c4'></div>
    <div class="circle" id='c5'></div>
    <div class="circle" id='c6'></div>
</div>

最佳答案

参见 the documentation for jQuery animate() :

Directional properties (top, right, bottom, left) have no discernible effect on elements if their position style property is static, which it is by default.

这是基于 CSS 行为。参见 CSS static and relative positioning .

您需要在 .circle CSS 中设置 position: relative;

问题的动画还有 left: '0px' 第一个动画,所以它不会去任何地方,无论如何!

运行此代码片段(底部的按钮):

$('.circle').click (function () {
    $('#c1').animate ( {
        left: '20px'
    }, 200);

    $('#c2').animate ( {
        left: '285px'
    }, 200);
} );
.loader {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 404px;
}
.circle {
    height: 50px;
    width: 50px;
    border-radius: 100%;
    display: inline-block;
    margin: 7px;
    position: relative;
    text-align: center;
}

#c1 { background-color: #4285f4; }
#c2 { background-color: #EA4335; }
#c3 { background-color: #FCBD06; }
#c4 { background-color: #4285F4; }
#c5 { background-color: #34AA54; }
#c6 { background-color: #EA4335; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="loader">
    <div class="circle" id='c1'>1</div>
    <div class="circle" id='c2'>2</div>
    <div class="circle" id='c3'>3</div>
    <div class="circle" id='c4'>4</div>
    <div class="circle" id='c5'>5</div>
    <div class="circle" id='c6'>6</div>
</div>

关于javascript - jQuery animate 没有效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33028205/

相关文章:

javascript - 如何在几秒钟后将动画 gif 显示为弹出窗口和警报

javascript - 选择器的有效方法

javascript - 在 mouseout 上使用 jQuery 隐藏下拉 div

javascript - 悬停时使用淡入淡出效果交换图像

javascript - 如何在javascript中限制直接url文件名?

javascript - React.js - audio.duration 返回 NaN 以及如何将 blobUrl 上传到亚马逊 s3

javascript - 通过google打包的app访问网站的DOM

html - 在容器悬停时缩放背景图像

单击正文中任意位置时隐藏的 JavaScript

javascript - 试图弄清楚如何使用隐藏在父元素中的 jQuery index()