这是move()函数
function move(){
/*calculate*/
var size = { x: $(window).width(), y: $(window).height() };
var scroll = { x: $(window).scrollLeft(), y: $(window).scrollTop() };
var height = h!=null ? h : this.esqueleto.lightbox.outerHeight();
var width = w!=null ? w : this.esqueleto.lightbox.outerWidth();
var y = 0;
var x = 0;
//vertically center
x = scroll.x + ((size.x - width) / 2);
if (this.visible) {
y = scroll.y + (size.y - height) / 2;
} else if (this.options.emergefrom == "bottom") {
y = (scroll.y + size.y + 14);
} else {// top
y = (scroll.y - height) - 14;
}
/*Process*/
if (!this.animations.move) {
this.morph(this.esqueleto.move, {
'left' : x
}, 'move');
}
this.morph(this.esqueleto.move, {
'top' : y
}, 'move');
} else {
this.esqueleto.move.css({
'left' : x,
'top' : y
});
}
}
任何想法为什么这适用于桌面(所有浏览器),iphone,......但不适用于Android?
答案 0 :(得分:0)
我很确定scrollLeft因某些原因无法在android上运行。在iOS上工作得很漂亮,但我永远无法在Android上工作。给它一个测试,看看你是否真的为它获得了一个值。
编辑:不仅仅是函数scrollLeft(),但实际上与水平滚动有关的东西似乎在android中不起作用。
我用来实际向左/向右移动的解决方法是css属性:
-webkit变换 -webkit-过渡性质 -webkit - 过渡定时功能 -webkit - 过渡持续时间
然而,这可能对你不起作用,因为你真的只是试图获得价值而不是实际移动东西。