javascript - 如何使用 css3 动画制作此 Jquery animate()?

标签 javascript jquery css animation

This is my jfiddle

这是我的实际代码

$card.animate({
            left: "1000px"
        }, 500, function(){
            $card.hide(500);
        });

(我不知道为什么“left”在 jfiddle 上不起作用)基本上我得到了一个装有 5 张 $cards 的容器。当用户刷卡(已实现)时,将触发 animate() 并且卡向右滑动然后消失。我怎样才能在 CSS 动画中实现这样的东西而不是使用 Jquery?我读到 CSS 动画运行得更快(我在我的移动设备上证明了这一点,hide() 运行得非常慢)...任何帮助或建议将不胜感激

最佳答案

首先,创建一个可以通过 jQuery 触发的类,该类将具有动画。

然后,您有两个选择:transitionanimation。过渡更简单、更直接,但您可以使用动画做更多的事情。

这是我建议的做法:移动的过渡,以及重新创建 hide() 函数的动画。

@keyframes hide {
    99% { display: auto; }
    100%{ display: none; opacity: 0; }
}
.myelement {
    transition: all .5s;
    position: absolute;
    left: 0;
}
.myelement.toLeft {
    left: 2000px;
    animation: hide .5s 1 forwards;
}

要触发它,只需执行以下操作:

$(".myelement").addClass("toLeft");

Here is a working JSFiddle .


正如@MohitBhardwaj 所说,您需要将position 设置为absoluterelativestatic 以便定位(即 left 属性)起作用。

同样重要的是要注意转换需要一个初始值。我添加了 left: 0 来执行此操作。否则,(使用 CSS 转换)它会简单地跳到 2000px,因为没有起点。

还有,因为2000px作为left的值很大,建议你把父元素的scroll改成overflow: hidden,这样多余的滚动条就不会了' t 出现。

关于javascript - 如何使用 css3 动画制作此 Jquery animate()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38374598/

相关文章:

javascript - 如何避免 "RangeError: Maximum call stack size exceeded"错误?

javascript - 在 overflow hidden 的父级中获取文本内容宽度

javascript - Bootstrap Codeigniter 3 表单点击编辑

jquery - 为什么 $.ajax 调用 json 数据会在 http 状态码为 "200 OK"时触发错误回调?

php - 将所有 css 加载为单个 http 请求和缩小形式?

javascript - 使用 JS 修改 CSS 文件中声明的属性。

html - 当我在 Firefox 中单击它时,如何删除图像按钮上的虚线?

javascript - 为什么 jQuery 在本地导入时不起作用

javascript - 在 Three.js 中动态地将一个网格替换为另一个新网格

javascript - Rails - 如何通过 AJAX 在渲染的部分中调用 jQuery 事件?