如何在JS中创建类似于iOS主屏幕的分页效果
How can you create a paging effect in JS similar to the iOS home screen?
我正在尝试为平板电脑创建一个网站,该网站具有用户在页面之间滑动的导航功能。该网站将仅在iOS设备上查看。
我尝试过一种方法,将页面相对于触摸位置移动,然后在触摸端滚动将容器向左移动到页面位置。这是代码
$(function() {
var xScreenStartPos, xScrollStartPos;
xScrollStartPos = 0;
xScreenStartPos = 0;
$(document).on('touchstart', '.page', function(e) {
xScreenStartPos = $(this).parent().scrollLeft();
xScrollStartPos = e.originalEvent.touches[0].pageX;
});
$(document).on('touchmove', '.page', function(e) {
var deltaX, xPos;
e.preventDefault();
xPos = e.originalEvent.touches[0].pageX;
deltaX = xScrollStartPos - xPos;
if ((deltaX > 50 || deltaX < -50) && scrollingVertical === false && menuOpen === false) {
$(this).parent().scrollLeft(xScreenStartPos + deltaX);
}
});
$('.page').on('touchend', function() {
var previousPage;
previousPage = void 0;
$('.page:in-viewport').each(function() {
if ($(this) !== previousPage && $(this).offset().left < 512 && $(this).offset().left > -511) {
$(this).parent().animate({
scrollLeft: $(this).parent().scrollLeft() + $(this).offset().left
}, 250);
}
});
});
});
然而,这种方法是非常紧张和缓慢的感觉。这感觉不像是一个流畅的用户体验。我试图复制的是类似于在iPad主屏幕上浏览页面的流畅导航。
我知道这将永远不会和当地的经历一样,但我正在努力尽可能接近。有人能帮我指出一个更好的解决方案吗?
您应该尝试swipejs。刷屏效果真的很接近原生,而且它有一个非常好的api。
相关文章:
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 如何通过引用var Using DataTables来进行分页或排序
- 使用CSS或JavaScript计算分页符的数量
- DataTables-创建自定义分页样式(加载更多样式)
- 使用ajax的服务器端分页&jQuery
- 分页:如何用AJAX加载第一个页面
- dataTables-如何自定义分页类型以显示最后一个页码后面的省略号,
- 不带jquery的全屏分页
- 更改组合框分页后,getValue和getRawValue返回相同的值
- jQuery简单分页
- 使用jQuery在表中分页
- jQuery分页下一页和上一页按钮在点击零或超过最后一页后失败
- jQuery:根据select选项中的每页项目进行分页
- 如何为我的分页添加格式
- 用键盘分页jQuery下一个和上一个控件.触发器('点击')不'不起作用
- 如何在emberjs中使用幻影假数据进行分页
- 如何在分页事件中突出显示数据表中的单词
- 如何在JS中创建类似于iOS主屏幕的分页效果
- Window.Print() 功能在 IE7 中中断,屏幕带有分页
- 屏幕抓取分页数据