我试图滚动一个页面的主体,我正在向上和向下建立的设备倾斜向上和向下。
当设备倾斜时,这个插件向左和向右滚动。
我如何使它上下滚动与上下倾斜?
(function($) {
$.fn.tilt = function(params) {
items = this;
params = $.extend( {sensitivity: 1}, params);
ax = ay = 0;
window.addEventListener('devicemotion', function (e) {
ax = e.accelerationIncludingGravity.x * params.sensitivity;
ay = -e.accelerationIncludingGravity.y * params.sensitivity;
if(ax > 0) {
ax -= params.sensitivity;
if(ax < 0) ax = 0;
} else if(ax < 0) {
ax += params.sensitivity;
if(ax > 0) ax = 0;
}
}, false);
mainLoop = setInterval("moveMe()");
moveMe = function() {
$(items).each(function() {
scrollPos = $(this).scrollLeft() + ax;
$(this).scrollLeft(scrollPos);
});
}
}
})(jQuery);发布于 2013-11-07 23:17:01
做同样的事情,但用y参数?
(function($) {
$.fn.tilt = function(params) {
items = this;
params = $.extend( {sensitivity: 1}, params);
ax = ay = 0;
window.addEventListener('devicemotion', function (e) {
ax = e.accelerationIncludingGravity.x * params.sensitivity;
ay = -e.accelerationIncludingGravity.y * params.sensitivity;
if(ay > 0) {
ay -= params.sensitivity;
if(ay < 0) ay = 0;
} else if(ay < 0) {
ay += params.sensitivity;
if(ay > 0) ay = 0;
}
}, false);
mainLoop = setInterval("moveMe()");
moveMe = function() {
$(items).each(function() {
scrollPos = $(this).scrollTop() + ay;
$(this).scrollTop(scrollPos);
});
}
}
})(jQuery);发布于 2013-11-07 23:21:18
如果使用jQuery,为什么不使用$.scrollTop()修改元素的垂直滚动值?
var tilt_interval_id = setInterval(function(items) { onDeviceTilt(items); }, 50);
function onDeviceTilt(items) {
$(items).each(function() {
var newScrollX = $(this).scrollLeft() + ax;
var newScrollY = $(this).scrollTop() + ay;
//Update the horizontal and vertical scroll positions
$(this).scrollLeft(newScrollX);
$(this).scrollTop(newScrollY);
});
}
//Later, if you wish to clear the interval ...
clearInterval(tilt_interval_id);https://stackoverflow.com/questions/19848404
复制相似问题