别对我苛刻,这是我第一次发帖。
我目前正在开发一个幸运之轮,它通过node.js和websockets与每个连接的设备同步。然而,我想切断动画的开始,当一个用户加入而车轮已经在旋转,所以它将只显示动画的最后几秒,而不改变它的缓和。
jquery动画是由一个简单的步骤动画制成的,它使轮子旋转。我已经尝试更改步骤的“fx”对象的参数,如fx.start或fx.pos。而fx.start只是动画开始时的变量,例如180度,而fx.pos只是一种输出参数,用于将动画中的某一特定时间改变,如文本颜色等。但是,fx.pos值不能改变,也不能改变动画当前设置的位置。我创建了一个函数,将命运之轮旋转两次,然后它在给定的度数处停止。
我也试图改变缓和,所以它将是50%线性,50%摆动,但这使动画看起来很垃圾,因为一开始它是以恒定的速度旋转,突然它旋转快而不是慢。
function spinRoulette(deg, duration = 10000) {
deg = Math.round(deg);
$("img.roulette").animate(
{ now: '+='+(720+deg-getRotation()) }, {
duration: duration,
...
step: function(now, fx) {
if(now >= 360)
now -= 360;
$(this).css("transform", "rotate("+now+"deg)");
}
});
}
如果持续时间少于10秒,动画的开始将被切断。所以,如果服务器旋转轮大约5秒前,我的动画的前5秒应该被切断。
0
到1
或从0.n
到1.0
(如果玩家在10秒内最多第6秒加入,则为0.6)$({t:t})。动画({t:1},
T_now
值)转换为相应的缓解
E_now
值
e_now
结果乘以所需的结束度数不使用“swing”
而使用“linear”
,让我们通过自定义的放松功能来控制放松和定时(您可以在网上找到许多放松片段)。假设我们喜欢easeInoutsine
:
const easeInOutSine = t => -(Math.cos(Math.PI * t) - 1) / 2;
例:4人,一人旋转车轮,另一人在初始旋转开始后2秒、4.5秒和8.7秒加入表演:
null
const easeInOutSine = t => -(Math.cos(Math.PI * t) - 1) / 2;
function spinRoulette(sel, deg, duration = 10000) {
const $el = $(sel);
const maxDuration = 10000;
const deg_end = 720 + Math.round(deg); // 2 revolutions + server-generated degrees
const time = maxDuration - duration; // Start time in ms
const t = time / maxDuration; // Start time to 0.0-1.0 range
$({t: t}).animate({t: 1}, { // Custom jQuery anim. from 0.N to 1.0
duration: duration,
easing: "linear", // We need a linear 0.0 to 1.0
step: function(t_now) {
const e_now = easeInOutSine(t_now); // Current easing
const deg_now = e_now * deg_end; // Current degrees
$el.css({transform: `rotate(${ deg_now }deg)`});
}
});
}
// Person 1 spins!
spinRoulette("#r1", 45);
// Person 2 joins the room after 2s
setTimeout(() => spinRoulette('#r2', 45, 10000 - 2000), 2000);
// Person 3 joins the room after 4.5s
setTimeout(() => spinRoulette('#r3', 45, 10000 - 4500), 4500);
// Person 4 joins the room after 8.7s
setTimeout(() => spinRoulette('#r4', 45, 10000 - 8700), 8700);
img {height: 120px; display: inline-block;}
<img id="r1" src="https://i.stack.imgur.com/bScK3.png">
<img id="r2" src="https://i.stack.imgur.com/bScK3.png">
<img id="r3" src="https://i.stack.imgur.com/bScK3.png">
<img id="r4" src="https://i.stack.imgur.com/bScK3.png">
<script src="//code.jquery.com/jquery-3.4.1.min.js"></script>
问题内容: 我正在尝试在鼠标悬停时使用jQuery来动画backgroundColor的变化。 我检查了一些示例,似乎正确了,它可以与其他属性(例如fontSize)一起使用,但可以使用backgroundColor和“ Invalid Property” js错误。我正在使用的元素是一个div。 有任何想法吗? 问题答案: 颜色插件仅比UI库便宜4kb。当然,您将要使用一个不错的插件版本,而不要
问题内容: 是否可以同时在两个不同的元素上运行两个动画?我需要与此问题相反的Jquery排队动画。 我需要做这样的事情… 但要同时运行这两个。我唯一想到的就是为每个动画使用一次,但是我认为这不是最好的解决方案。 问题答案: 就在这里!
主要内容:实例,jQuery stop() 方法,实例jQuery stop() 方法用于在动画或效果完成前对它们进行停止。 停止滑动 时间是宝贵的,因此,我们为您提供快捷易懂的学习内容。 在这里,您可以通过一种易懂的便利的模式获得您需要的任何知识。 实例 jQuery stop() 滑动 演示 jQuery stop() 方法。 jQuery stop() 动画(带参数) 演示 jQuery stop() 方法 jQuery stop() 方法 j
1.1. 开机动画 1.1.1. max_bright: 1.1.2. flash_times: 1.1.3. single_delay: 1.1.4. colorR、colorG、colorB: 1.1. 开机动画 开机动画由bootanim进程控制,bootanim开机自动高优先级启动。 bootanim启动后会判断/var/run/bootcomplete是否存在,当存在此文件且灯效全部亮起
问题内容: 我正在使用jQuery和jQuery-ui,并希望为各种对象设置各种属性的动画。 为了在此说明问题,我将其简化为一个div,当用户将鼠标悬停在其上时,该分区从蓝色变为红色。 使用时我可以得到想要的行为,但是这样做时,我要设置动画的样式必须在动画代码中,因此与样式表是分开的。(请参见 示例1 ) 一种替代方法是使用,但是我无法重新创建可以得到的确切行为。(请参见 示例2 ) 例子1 让我
本文最初发表于[博客园](),并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我,一起入门和进阶前端。 以下是正文。 前言 jQuery提供的一组网页中常见的动画效果,这些动画是标准的、有规律的效果;同时还提供给我们了自定义动画的功能。 显示动画 方式一: $("div").show(); 解释:无参数,表示让指定的元素直接显示出来。其实这个方法的底层就是通过displa