美文网首页
使用Vanilla JavaScript拉动刷新动画

使用Vanilla JavaScript拉动刷新动画

作者: 开心人开发世界 | 来源:发表于2019-08-09 07:20 被阅读0次

照片来自达里亚舍夫佐娃

Pull-to-refresh是智能手机上非常流行的滑动手势,允许用户在数据列表之上加载新内容。它被用于智能手机和网络应用程序的大多数流行应用程序,并已成为用户体验的主要部分。

https://codepen.io/Vijit_Ail/full/pmbypw(打开devtools试试动画)


几天前,我看到了上面的动画,所以我想我会做出我的版本。

猜猜看,我设法用没有第三方库或jQuery插件来构建它,只是普通的Vanilla JavaScript。😎

一个非常简单的标记 - 一个顶部装载容器,将包含装载程序和一堆卡。

让我们来看看有趣的东西😁。

我们的想法是默认隐藏加载容器,并在用户向下滑动时将其向下滑动。transform-style : preserve-3d将卡片放置在3D空间中,卡片包装器上的透视属性将决定用户从他们的角度看到的内容; 较低的值会产生更强烈的3D效果。请注意,未在子元素上设置透视图。有关CSS 3D动画和变换的更多信息

这就是我们需要的所有CSS。现在让我们开始添加滑动手势。

JS中的触摸事件由触摸事件侦听器处理。这些类似于鼠标事件,除了它们允许在触摸表面上进行多次触摸。

pStartpCurrent对象将存储开始和当前触摸的触摸位置。我们需要这些来找到Y坐标的变化来计算卡片的旋转。

swipeStart()函数中,我们将捕获触摸坐标并将其分配给pStart对象。

swipe()函数中,我们pCurrent使用当前触摸坐标设置对象。下一步是找到起始位置和当前Y位置之间的差异,以计算滑动距离并根据距离的30%进行旋转。装载容器仅在距离大于100时出现。

swipeEnd()如果触摸已开始但未启用加载,该功能将撤消旋转。

在加载时,为了演示的目的,加载容器将向下滑动2秒,但在实际示例中,根据服务器的响应,可能需要更多或更少的时间。一旦装载完成,装载容器和卡将移回到原始状态。

我从这个 stackoverflow问题中获取了JavaScript的参考。

我的codepen中的完整源代码。打开devtools以查看动画的实际效果。


我希望你今天能学到新东西😄。如果您对改进代码有任何疑问或有任何建议,请随时写下您的回复。

干杯和快乐的编码🍻✌

转:https://levelup.gitconnected.com/pull-to-refresh-animation-with-vanilla-javascript-6574d7c4ad24

相关文章

网友评论

      本文标题:使用Vanilla JavaScript拉动刷新动画

      本文链接:https://www.haomeiwen.com/subject/mgfddctx.html