javascript - pts.js:加速网格单元的动画?
问题描述
我正在使用Pts.js创建一个单元格网格,然后根据它们与鼠标指针的距离为这些单元格着色。我的代码主要基于Pts.js 官方网站的演示。
Pts.quickStart("#pt", "#123");
//
let pts = [];
var follower = new Pt();
space.add({
start: (bound) => {
pts = Create.gridCells(space.innerBound, 40, 20);
follower = space.center;
},
//
animate: (time, ftime) => {
follower = follower.add(space.pointer.$subtract(follower).divide(20));
form.stroke("#123");
//
let rects = pts.map((p) => {
let color;
let mag = follower.$subtract(Rectangle.center(p)).magnitude();
let r = Rectangle.fromCenter(Rectangle.center(p), Rectangle.size(p));
//
if (mag >= 100) {
color = "#000"
} else {
color = "#f00"
}
//
form.fill(color).rect(r);
})
//
form.fillOnly("#fff").point(space.pointer, 10, "circle");
}
})
//
space.bindMouse().bindTouch().play();
#pt {
width: 800px;
height: 600px;
margin: 30px auto 0;
}
<script src="https://unpkg.com/pts@0.9.4/dist/pts.min.js"></script>
<div id="pt"></div>
实施工作绝对正常。但我想提高单元格的»着色«»跟随«光标的速度,即减少光标周围红色空间的动画延迟。理想情况下,我不想耽搁。
我是 Pts.js 的新手,所以我仍然在关注文档,我找不到关于如何控制动画速度的选项或解释。如果有人能指出我需要在这里做什么,那就太好了。
解决方案
似乎这条线控制了红色网格区域的行为:
follower = follower.add(space.pointer.$subtract(follower).divide(20));
提供的值.divide()
控制红色区域跟随光标的速度。将其参数从20
to更改1
(甚至.divide(20)
完全删除)会导致“跟随”行为立即发生。
(不过,如果您打算删除该行为的功能,我怀疑可以简化整行。)
推荐阅读
- c# - 带有繁忙等待/CPU绑定代码的等待异步链的末尾应该是什么?
- javascript - 有没有办法选择点击事件附近的元素?
- javascript - Google Maps LatLng 的 Typescript 类型问题{}
- linux - No such file or directory in shell redhat
- c - 在使用 malloc() 分配的两个字符串上使用 strcat() 然后使用 = 分配会导致 C 程序中的段错误
- netsuite - NetSuite 哪些因素决定从文件柜中引用哪个脚本?
- python - 使用 C API 在 python 中确定十进制对象的类型并转换为不同的类型
- javascript - DiscordJS 语音频道信息不更新
- mysql - MySQL 连接停留在 'localhost' 并且拒绝访问(错误 1045)
- dns - 具有两个不同 tld 域的 ns 记录 - 这是一个坏主意吗?