我将Zepto.js用于移动 Web 应用程序。Zepto 带有方便的方法,例如swipe
,swipeLeft
和swipeRight
.
例如:swipeLeft
向左滑动完成后触发手势。至少我是这么看的。
是否可以通过此滑动手势使用实时值更新元素的位置。
因此,当我在文档上缓慢向左滑动时,我想div.layer
与我一起缓慢移动。当达到临界点时,layer
应该捕捉到预定义的位置。
这是否可能以某种方式。如果 Zepto 无法实现,我会选择不同的框架。
我现在拥有的
HTML
<div class="page-wrap">
<section class="layer" id="one">
</section>
<section class="layer" id="two">
</section>
</div>
CSS
.page-wrap {
position:relative;
width:100%;
height:100%;
}
.page-wrap .layer {
width:100%;
height:100%;
position:absolute;
top:0;
}
.page-wrap #one {
background:red;
}
.page-wrap #two {
left:-100%;
background:green;
}
JS
$(document).ready(function() {
$('#two').swipeRight(function(e) {
showInfos(true);
});
$('#one').swipeLeft(function(e) {
showInfos(false);
});
});
function showInfos(show) {
$("#two").animate({
left: show?'0':'-100%'
}, 200, 'ease-out');
}
这行得通!位于.layer#two
可见视口之外。向右滑动时.layer#one
,.layer#two
从左侧滑入。向左滑动时,将向左.layer#two
滑.layer#two
回。
这正是我希望我的应用程序做的事情。这种模式是众所周知的,很多应用程序都使用这种 UI 模式。
然而,我想要它做的是表现得好像它是手机上的本机应用程序,当手指沿着.layer
s滑动时, .layer
s 会更新它们相对于用户手指的位置。swipe
所以我不希望动画在手势完成后生效。我希望在刷卡position
时.layer#two
实时更新。
也许你想在某个地方进行现场测试。我在jsfiddle上提供了上面的片段。
我真的很感激这方面的一些帮助。或提示和技巧。我想我可能不是唯一对这样的事情感兴趣的人。