基于JavaScript滚动的动画在手机上是不稳定的
JavaScript scroll based animation is choppy on mobile
我有两个div(左边和右边),我想在右边的基础上滚动左边。https://jsfiddle.net/3jdsazhg/2/
这在桌面上工作得很好,但当我切换到移动设备时,它不再顺畅了…这可以很容易地注意到,通过更改
_left.style.top = _content.scrollTop - (_content.scrollTop * ratioLeftRight) + 'px';
_left.style.top = _content.scrollTop + 'px';
作为固定位置的div
- 我想知道这不是顺利的确切原因…我知道不是动画的问题。div上的简单动画是平滑的,但当它基于滚动时,问题就出现了。
- 我如何使这个动画平滑?
这可能是不稳定的,因为它被触发时,滚动,事实上,我很确定IOS移动暂停javascript的执行,而用户正在滚动。
相反,我建议使用间隔,您可以调整每个间隔之间的时间,使其适合您的用例。
虽然在使用scroll事件时每X毫秒触发一次这个逻辑似乎很密集,但你可以每秒触发数百次这个事件,这对于使用有限处理能力的设备的用户来说将是更加密集和明显的。
(function () {
var interval = null,
//Currently set at 0.4 seconds, play with the code
//and change this value to see what works best for
//this use-case
time_between_interval = 400;
setInterval(scrollLogic, time_between_interval);
function scrollLogic () {
//The function body of what you're assigning
//to the scroll event.
}
//I have omitted clearing the interval but you would want to do that, perhaps on page change, or something.
//clearInterval(interval);
})();
我终于想出了一个解决办法。
从我的角度来看,我猜移动视图触发滚动事件的频率较低,因为我们正在滚动包装器,我们首先滚动整个页面,然后用js滚动左侧,因为它不同于桌面版本,这个问题变得可见…
解决方案是将左侧改为固定位置,并从顶部减去而不是添加。
_left.style.top = -(_content.scrollTop * ratioLeftRight) + 'px';
相关文章:
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- Javascript”;结束”;函数工作不稳定
- nodeJS服务器性能缓慢且不稳定
- Javascript动画不稳定
- jQuery类选择器工作不稳定
- 视差'背景图像/位置/附件'jQuery的动画很不稳定
- 加载文件时xmlhttp不稳定,如何修复
- ckEditor,AngularJS&Bootstrap 3 Modal-insertText()的行为不稳定
- 如何捕捉不稳定的互联网连接
- Javascript和/或点击因过度拥挤而变得不稳定
- 不稳定的内部 HTML 行为.文本消失
- RTC 数据通道的行为不稳定
- 分页和过滤在 AngularJS 中不稳定
- 使用jQuery对某些元素的css属性进行颜色循环,:hover卡住且不稳定
- requireJS的不稳定行为
- jQuery.BlackAndWhite.js移动设备上不稳定
- Angularjs在使用身份验证时路由不稳定
- Javascript's排序为'不稳定'-我该如何避开这个
- 在Firefox中动态加载JQuery时不稳定
- 图像滑块不稳定