- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我有一个无限循环动画,这是循环上的一些元素,例如 box1、box2、box3,类似于旋转寿司。当我点击该框时,它会弹出一些信息并停止动画,4 秒后它会再次重新启动。
但我现在面临的问题是,在 4 秒后重新启动时,由于动画持续时间,速度看起来非常慢。这是我的代码。
var timeoutBox;
$('.sushi_box').on('click', function(){
$('.sushi_item').removeClass('active');
$(this).parent().addClass('active');
// here another code for stop the sushi roll.
$('.total_roll').clearQueue().stop();
// after 4 sec hide box;
clearTimeout(timeoutBox);
timeoutBox = setTimeout(function(){
$('.sushi_item').removeClass('active');
// here another code for reanimate the sushi roll.
animateLoop();
}, 4000)
})
function animateLoop(){
var originWidth = $('.sushi_roll.origin').outerWidth(true);
$('.total_roll').animate({ "left": -originWidth }, {
easing:"linear",
duration:5000,
complete: function(){
$('.total_roll').css({ "left": 0});
originNumber++;
console.log(originNumber);
if(originNumber == 1){
console.log(1);
var origin = $('.sushi_roll.origin').html();
$('.sushi_roll.origin').remove();
$('.total_roll').append('<div class="sushi_roll origin">'+origin+'</div>');
var $sushiWidth = $('.sushi_roll .sushi_item').outerWidth(true);
var $sushiHeight = $('.sushi_item').outerHeight(true);
var $sushiOrginLength = $('.sushi_roll.origin .sushi_item').length;
var $sushiCloneLength = $('.sushi_roll.clone .sushi_item').length;
$('.sushi_roll.origin').css({
"width" : $sushiOrginLength*$sushiWidth,
"height" : $sushiHeight
});
} else if(originNumber == 2){
console.log(2);
var clone = $('.sushi_roll.clone').html();
$('.sushi_roll.clone').remove();
$('.total_roll').append('<div class="sushi_roll clone">'+clone+'</div>');
var $sushiWidth = $('.sushi_roll .sushi_item').outerWidth(true);
var $sushiHeight = $('.sushi_item').outerHeight(true);
var $sushiOrginLength = $('.sushi_roll.origin .sushi_item').length;
var $sushiCloneLength = $('.sushi_roll.clone .sushi_item').length;
$('.sushi_roll.clone').css({
"width" : $sushiOrginLength*$sushiWidth,
"height" : $sushiHeight
});
}
if(originNumber>=2){
originNumber=0;
}
animateLoop();
}
});
}
animateLoop();
这是另一个简化版本。当动画快结束时,当我单击停止并再次启动时,动画变得非常慢,我知道这是一个持续时间问题。有人知道如何解决这个问题吗?
最佳答案
正如您所提到的,问题是达到目标的持续时间是 3 秒。这意味着,盒子离目标越近,它的速度就越慢。
一种解决方法是根据剩余距离设置持续时间。使用第二个示例:
var $box = $('.box');
var target = 300, defaultDuration = 3000, startX = $box.position().left;
function animateLoop(duration){
var x = $box.position().left - startX;
var duration = ((target - x) / target ) * defaultDuration;
$box.animate({ "left": 300}, {
duration:duration,
complete: function(){
$box.css({'left':0});
animateLoop(); }
});
}
PS,为了在(重新)启动动画时获得更线性的运动,您可以将缓动
设置为线性
:fiddle
关于jquery - 停止并重播动画以相同的速度导致结果看起来很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37984016/
我想在 vim 中从光标到缓冲区末尾的打开缓冲区的每一行上运行我刚刚在寄存器“x”中记录的宏。我该怎么做? 我知道我可以重播宏 n 次: 15@x ...或者只需按住 @ 直到到达最后一行,但我只想按
因此,我最近尝试学习html5知识,并获得了音频标签。在PC的浏览器Chrome上似乎可以正常工作,但在Android(4.0,同时使用常规浏览器和海豚)上却不能正常工作。它将播放一次音频,但不会再播
我有兴趣使用 PHP 构建一个解析器来享受我的乐趣。我需要知道什么?你对我有什么建议?我什至如何使用 PHP 打开星际争霸 2 重播? 最佳答案 SC 回放文件实际上是一个 MPQ 存档文件。此 MP
我有一个使用 Animate.CSS 的动画如果用户愿意,我想重播,但我尝试的方法不起作用。这是代码: HTML:
在 ASP.NET MVC 中防止一个有效 cookie 一次被多个客户端使用的“最佳实践”是什么? 在这种情况下,我们使用了所有 OWASP 技巧。 严格的 HSTS:每个页面都使用 HTTPS/S
我有一个 AVPlayer 类,全部设置为流式传输音频文件。它有点长,所以我不能在这里发布整个内容。我坚持的是如何让用户在听完一次音频文件后重播。当它第一次完成时,我正确地收到通知 AVPlayerI
我正在尝试用 sipp 重播捕获的 pcap 文件。我的设置有 2 台电脑和一个代理。接收电脑有 linphone,应该能够接听来自另一台发送带有 sipp 的 pcap 文件的电脑的调用。我已经用
我有一个网页,如果应用了某些样式,滚动时可能会出现卡顿。我的问题是如何系统地测试个人风格的效果。我不想每次都手动向下滚动页面,我想执行一些可复制的操作,以便轻松比较两个不同样式表的效果。是否可以录制和
我想从 Clojurescript 建立一个 Om session ,它可以在另一台机器上回复整个 GUI。我如何才能将原子从客户端传递到服务器,以便只发送更改,以便可以在其他地方重播更改历史? 更新
我一直在使用 React Native Video 模块并且它工作得很好,但是我需要播放结束时的视频自动倒回到开头。视频实例可以选择使用: onEnd={this.onEnd} 视频播放结束后调用一个
我的计算机上有一些虚拟机,它们通过主机专用网络相互通信。 我想模拟这些机器之间的中间人攻击。我发现的所有运行 MITM 的工具都只是监视数据包,但我没有找到任何可以真正重放或更改它们的工具。 我发现了
我是 FreeGLUT 的当前维护者之一sourceforge 上的项目。此代码存储在 SVN 存储库中,但为了激发其他人的贡献,我想提供一个 git 存储库。我已经在 github 上有一个 svn
我正在开发一个有很多命令行交互的系统。有时甚至通过 SSH。命令有时可能需要长达 30 分钟才能完成。 目前,我正在停止对执行该系统调用的对象的大部分 system 调用。例如: class Back
我们如何在delve session 中轻松查看decimal.Decimal值的浮点值。尤其是在 mozilla rr 录制的 dlv replay session 中。 (dlv) args un
我是一名优秀的程序员,十分优秀!