我做了一个简单的 grabbing demo page .它没有任何缓和/加速。我想做与 kulesh.info 相同的缓动/加速(Flash 网站)使用 JavaScript。我该怎么做?
任何在 JavaScript 中平滑抓取(滚动、拖动)的示例以及与语言无关的算法都会有所帮助。
最佳答案
我认为这是使用 jQuery 可以获得的最佳效果:[ Demo ]
jQuery.fx.interval = 1; // since v1.4.3
var photos = $(".photos");
var scrollLeft = photos[0].scrollLeft;
var $el = $(photos[0]);
var lastTime = +new Date();
$(window).mousemove(function(event){
var now = +new Date();
var elapsed = now - lastTime;
if (dragging && elapsed > 10) {
scrollLeft += x - event.clientX;
$el.stop().animate({scrollLeft: scrollLeft}, 300, "easeOutCubic");
x = event.clientX;
lastTime = +new Date();
}
});
$(window).mouseup(function(event){
dragging = false;
$el.stop().animate({scrollLeft: scrollLeft}, 500, "easeOutCubic");
});
请注意,目前无法纠正所有可能的(轻微)迟缓,因为它与现代浏览器的图像渲染性能有关。 Test - 简单的线性动画,没有事件,没有 jQuery
关于javascript - 顺畅抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4234489/