我有一个支持滑动手势的画廊。通过向左/向右滑动,用户可以浏览图库。我需要限制滑动div的位置,这样它就不会偏离轨道,也就是说,一旦你到达页面,显然所有的图像都在右边,所以我不想让用户向左滑动(到空白区域)。
我试着使用“大于”,但它不起作用。
var theWidth = $(window).width();
function processingRoutine() {
var swipedElement = document.getElementById(triggerElementID);
if ( swipeDirection == 'left' ) {
$(".frame").animate({marginLeft: '-='+theWidth});
} else if ( swipeDirection == 'right' ) {
$(".frame").animate({marginLeft: '+='+theWidth});
if ( parseInt($(".frame").css("margin-left")) > 1 ) {
$(".frame").animate({marginLeft: "0px"});
}
}
}你可以在这里查看整个源代码:http://joinersart.co.uk/mtest
发布于 2012-09-21 19:03:39
我犯了一个简单的错误:
我搞不懂在哪里边距左应该注册“不去”区域。我最初认为,如果左边距大于1px,就足够了。事实上,它实际上需要减去我移动的量。
因此,不是:
if ( parseInt($(".frame").css("margin-left")) > 1 ){...它应该是:
if ( parseInt($(".frame").css("margin-left")) > -theWidth ){...发布于 2012-09-21 05:08:11
更改:
$(".frame").animate({margin-left: "0px"});至:
$(".frame").animate({marginLeft: "0px"});发布于 2012-09-21 04:59:14
我相信你的问题出在parseInt()身上。因为parseInt() -left的值可以是'0px‘,所以我相信它会使用一个8的基数。(已弃用),如果使用parseInt(frame.css("margin-left"), 10),则应使用基数10 (十进制)将字符串解析为正确的整数值。
https://stackoverflow.com/questions/12520613
复制相似问题