javascript - 如何用JS制作类似iOS主屏的分页效果?

标签 javascript jquery ios css ipad

我正在尝试为平板电脑创建一个网站,该网站带有用户在页面之间滑动的导航。该网站只能在 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。

关于javascript - 如何用JS制作类似iOS主屏的分页效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28860335/

相关文章:

jquery - 创建帖子时如何使用 JQuery-File-Upload 在一页上上传多张图片?

jquery - JSON 位图数据

ios - 如何获得默认的 iOS 红色警告颜色?

ios - 如何在 SwiftUI 中删除 `Form` 的左右填充?

javascript - 在更改该页面上的类时定向到另一个页面

javascript - Canvas 图像数据多像素插入

javascript - 如何将数据从 onclick 按钮传递到变量

javascript - 如何在jquery中点击时显示最后一个li?

javascript - 选择元素的 jQuery .val() 返回文本

ios - 如何让 cocoapods 只为设备构建?