jquery - 无法控制 jQuery 动画持续时间
问题描述
我使用 CSS 属性“clip-path”在网站上创建了一个滑块,基本上有两个图像,一个在另一个前面,前面的图片被剪掉或向左“滑动”以完全显示背景。我能够做到这一点的唯一方法是使用 jQuery 步进函数。我想控制动画的持续时间,但让浏览器一直卡在无限循环中,并且持续时间也没有工作。
这是我的代码:
$(document).ready(function() {
$({step: 50}).animate({step: 100}, {
step: function(val) {
$('.et_pb_fullwidth_header_0').css("clip-path", "inset(0% " + val + "% 0% 0%)");
}
})
})
“.et_pb_fullwidth_header_0”是我的形象。
根据 jQuery 的文档,在这种情况下需要在我的第二个参数之后添加持续时间,即“{step: 100}”。
那么看起来像这样:
$(document).ready(function() {
$({step: 50}).animate({step: 100}, 5000, {
step: function(val) {
$('.et_pb_fullwidth_header_0').css("clip-path", "inset(0% " + val + "% 0% 0%)");
}
})
})
但这会在浏览器上创建一个无限循环并出现错误:
Uncaught TypeError: Cannot read property 'length' of undefined
at init.s.fx.s.Tween.run (jquery-migrate.min.js?ver=3.3.2:2)
at u (jquery.min.js?ver=3.6.0:2)
at Function.S.fx.tick (jquery.min.js?ver=3.6.0:2)
at ot (jquery.min.js?ver=3.6.0:2)
我错过了什么?
解决方案
好的,我想通了,所以让我回答我自己的问题。哈哈!
所以我需要在代码本身中设置持续时间,即:
$(document).ready(function() {
$({step: 50}).animate({step: 100}, {
duration: 5000,
step: function(val) {
$('.et_pb_fullwidth_header_0').css("clip-path", "inset(0% " + val + "% 0% 0%)");
}
})
})
而不是在第二个参数之后直接添加持续时间。好吧,我希望这对某人有所帮助!
推荐阅读
- python - 使用 python 脚本从 docker 合并 Yaml
- python - 使用实例属性和方法
- python - Python字典父子组织
- ruby - Github Actions 未能在 ubuntu-18.04.5 上安装 Libv8 gem
- crystal-lang - 如何在 Crystal 中读取一定数量的字符(而不是字节)?
- android - 使卡片完全可点击的颤动
- python - 为什么我在 Python 中的递归骑士代码只运行第一个堆栈?
- python - 如何使用可扩展选项卡和后续 POST 请求(CORS 问题)抓取数据
- python - 如何在kivy中将文本输入设置为int
- php - 注册表单 PHP 不将值插入数据库,只是重新加载页面