javascript - 基于滚动百分比的 jQuery 动画
问题描述
我目前正在为两把剑制作动画,当用户滚动超出原始滚动点 0 时它们会交叉。这是我用来执行此操作的代码:
if(sword_static) {
sword1.css({
'left': '50.2%',
'transform': 'rotate(0deg) translateX(-75%)'
});
sword2.css({
'left': '47.35%',
'transform': 'rotate(0deg) scaleX(-1) translateX(-25%)'
});
sword_static = false;
} else if($(window).scrollTop() === 0) {
sword1.css({
'left': '46.5%',
'transform': 'rotate(-45deg) translateX(-50%)'
});
sword2.css({
'left': '48.5%',
'transform': 'scaleX(-1) rotate(-45deg) translateX(-50%)'
});
sword_static = true;
}
这是可行的,但是我想根据用户的滚动百分比为这些剑制作动画。所以当用户滚动时,剑的动画进度是基于用户滚动了多少。我认为使用 jQuery 的“动画”在这里可能很有用。
我目前正在使用以下代码(改编自:https ://stackoverflow.com/a/8028584/9692762 )来确定用户滚动整个页面的百分比:
var s = $(window).scrollTop(),
d = $(document).height(),
c = $(window).height();
var scrollPercent = (s / (d - c)) * 100;
显然,我不能让动画从 0 到 100 的滚动百分比播放,因为此时剑不在屏幕上 - 大约 20% 的滚动应该是动画完全播放并完成的点。
任何建议,将不胜感激。
解决方案
推荐阅读
- python - 为什么即使在 Python 中的新请求中,变量也会保留在内存中?
- batch-file - .bat 文件中的 NEQ "NOPROMPT" 有什么作用?
- r - 仅在需要时使用科学记数法
- sql - 如何批量更新包含大数据的表
- r - cv.glmnet 中的岭、套索回归错误和 randomForest 中的错误
- python - 如何将“keras”从 1.2.0 升级到 2.0.0?
- ruby-on-rails - 如何在rails haml中呈现文本字段
- c# - UWP-App 创建的文件未在 Windows 10 1803 中编制索引
- javascript - 使用 linqjs 使用另一个数组中的值过滤一个数组
- selenium - 是否可以使用 52 之后的 Firefox 运行 selenium 3.x 测试,将“木偶”功能设置为 false(不使用 GeckoDriver)?