行业

汽车

航空

金融

游戏

医疗科技

物联网

数字产品

使用场景

面向企业

面向个人

面向团队

用于教育

主要特点

硬件与系统集成

公测版

ProtoPie MCP

多设备原型设计

交互逻辑

开发交接

ProtoPie AI

用户测试

插件

Figma

Sketch

Adobe XD

洞见与灵感

博客

白皮书

客户成功案例

活动与网络研讨会

ProtoPie 画廊

产品学习与支持

ProtoPie 学堂

下载 ProtoPie

产品文档

社区

行业

汽车

航空

金融

游戏

医疗科技

物联网

数字产品

使用场景

面向企业

面向个人

面向团队

用于教育

主要特点

硬件与系统集成

公测版

ProtoPie MCP

多设备原型设计

交互逻辑

开发交接

ProtoPie AI

用户测试

插件

Figma

Sketch

Adobe XD

洞见与灵感

博客

白皮书

客户成功案例

活动与网络研讨会

ProtoPie 画廊

产品学习与支持

ProtoPie 学堂

下载 ProtoPie

产品文档

社区

教程

11

阅读时间

如何为网页创建循环滚动轮播图

了解如何使用滚动触发器、变量和条件为网站创建循环滚动轮播图。

Briandito Priambodo, 设计师兼撰稿人 @ The Tiny Wisdom


当我们浏览互联网时,很容易找到带有循环滚动轮播的网站。在首页使用它来展示图片或横幅是很常见的做法。在这篇文章中,我们将学习如何为你的网站制作一个循环滚动轮播原型,这可以通过滚动触发器、变量和条件来实现。

概览

  • 你将学到什么

  • 一步一步:如何制作循环滚动轮播原型

  • 1. 使用分页容器制作轮播视图。

  • 2. 根据滚动偏移更改图片名称

  • 3. 制作循环滚动

  • 你的轮播原型完成了!

你将学到什么

  1. 使用 Paging Container 制作轮播视图原型

  2. 根据滚动偏移更改图片名称(耶,变量!)

  3. 制作循环滚动

最后,你将能够做出像这样的效果!


Looping Scroll prototype

[起始 Pie 文件] [完成的 Pie 文件]

一步一步:如何制作循环滚动轮播原型

1. 使用分页容器制作轮播视图。

首先,我们需要把图片编组到一个容器中。我们需要使用分页属性,因为我们希望滚动动画能够“吸附”到图片上,而普通滚动会更灵活。

 1.** 添加一个 Paging Container**,并将宽度设置为与屏幕同宽,高度设置为与图片高度相同。将需要滚动的元素拖拽到容器中——IMG 1、IMG 2 和 IMG 3。


Add a paging container

 2. 在 Paging Container 的属性面板中,将滚动方向设置为** horizontal**,因为图片将水平移动。点击左右箭头。让我们将这个容器重命名为“Paging”,这样更方便引用。


Set the Paging Container's property

 3. 如果你想禁用滑动交互,可以将 Paging Container 的高度设置为 0。原因是使用鼠标光标进行“滑动”并不自然。不过这是可选的——如果你想保留滑动交互,也完全可以!

 4. 如果你决定隐藏滑动交互,添加一个新容器来裁切溢出的图片。将宽度设置为与屏幕同宽,高度设置为与图片高度相同。然后把 Paging Container 放进这个新容器里。

前往右侧属性面板,向下滚动并点击 Clip Sublayers 来隐藏溢出的图片。如果你缩小查看,会看到屏幕左右两侧溢出的图片现在已被隐藏。


Add a new container to clip the overflowing images

 5. 要让右箭头图标可点击,添加一个** Tap trigger。** 我们将使用** Scroll By **属性,让 Paging Container 的滚动位置移动 1171px。


Move the scroll position of the "Paging" container by 1171px

💡 为什么我们使用“Scroll by”而不是“Scroll to”?

因为我们希望按一段距离移动,而不是设置到一个固定位置。例如,如果当前滚动位置是 0。使用“Scroll to”逻辑时,我们会把滚动位置移动到 1171px。那之后再点击右箭头会发生什么?什么都不会发生,因为它已经在 1171 了。

这就是为什么我们要使用“Scroll by”。无论当前情况如何、滚动位置在哪里,只要用户点击右箭头,我们就会让滚动移动 1171px。如果再点一次右箭头,它会再次移动 1171px。

💡 好吧,但为什么是滚动 1171?

因为 1171 是我们在该原型中网站的宽度。

 6. 使用相同方法为左侧图标制作交互。不过将 scroll by 的值设置为 -1171。


Make the interaction for the left icon

💡 提示与技巧

为了制作后续交互,我们需要知道 Paging Container 的滚动偏移。快速获取滚动值的方法是使用变量来检测其值。下面是几个步骤:

 1. 创建一个新变量。

 2. 在属性面板中,点击 Use Formula 复选框以启用公式输入。这个公式仅适用于 Variables For This Scene。

 3. 我们在这里使用的公式是 "Paging".scrollOffset,它会返回 Paging Container 当前的滚动值。


Use formula in a variable

 4. 在预览窗口中,你暂时还看不到任何内容。将鼠标悬停在你刚创建的变量上,然后点击右侧的“bug”图标。完成后,你就可以在左上角看到当前滚动值了。


Display the variable in the preview window

2. 根据滚动偏移更改图片名称

现在我们可以检测滚动值了,就可以有一个指示器来帮助我们知道当前可见的是哪张图片。例如,我们可以显示当前正在查看图片的正确名称。开始吧!

 1.** 给 Paging Container 添加一个 Detect trigger。** 在属性面板中,选择检测它的滚动值。我们在这里做的是“检测”滚动值的变化。然后根据滚动值,相应地更改图片标题。


Add a detect trigger to the paging container

💡 什么是 detect trigger? 一种用于检测图层属性或变量变化的触发器。如果检测到变化,就会激活响应。

 2. 为了正确获取图片名称,我们需要检测 Paging container 的滚动位置。添加一个条件:当 Paging Container 的滚动值为“0” 时。因为我们希望在页面尚未滚动时(滚动位置 = 0)显示正确的图片名称。


Add a condition when the paging container's scroll value is "0"

 3. 当滚动值为 0 时,为标题添加 opacity 响应。 这里使用的值是:

  • Modern Architecture:Opacity = 100

  • Museum:Opacity = 0

  • Minimal Plaza:Opacity = 0

你也可以使用文本响应来更改文字。在这种情况下,你只需要 1 个标题图层。不过,opacity 可以带来更平滑的过渡效果。

我们也会把同样的逻辑应用到“ct-bg”图层中的背景图片。这些图片位于 ProtoPie 中创建的“Background Blur”图层之后。当“Modern Architecture”的 Opacity 为 100 时,“ct-bg”中对应名为“Modern Architecture”的图片也应设置为 Opacity 100。

将同样规则应用到其他图层:如果某张图片在轮播中可见,那么“ct-bg”中对应的图片 Opacity 应设为 100;而未显示的图片 Opacity 应设为 0。

如果你现在尝试原型,会发现无论显示哪张图片,Modern Architecture 都一直在那里。这是因为我们还没有为其他标题设置条件。接下来,我们将对 MuseumMinimal Plaza 做同样的设置。


Add opacity responses to the titles

 4. 使用相同方法,当滚动值为 1171 和 2342 时添加响应

如果值 = 1171,

  • Modern Architecture:Opacity = 0

  • Museum:Opacity = 100

  • Minimal Plaza:Opacity = 0

如果值 = 2342,

  • Modern Architecture:Opacity = 0

  • Museum:Opacity = 0

  • Minimal Plaza:Opacity = 100


Add responses when scroll values are 1171 and 2342

让我们在预览窗口中检查一下。现在你已经有了一个可点击滚动且标题动态变化的横幅!但是……还有点不对。到末尾后,横幅不会循环。接下来,让我们让它循环起来!


Check in the preview window

3. 制作循环滚动

要实现“循环”,我们需要复制第一张图片并放到最右边。同时,复制最后一张图片并放到最左边。这 2 张图片也必须在分页容器内。

现在你已经看到了,我们其实并不是真正在循环同一张图片。相反,我们是伪造循环,让它在原型中看起来像在循环。聪明吧?


Arrange layers for the looping scroll

 1. 在 detect trigger 中添加一个条件。我们将使用 Paging Container 的滚动值,并设置为** -1171。**

 2. 在该条件下,为分页容器添加 scroll to,使其滚动到 2342。将 duration 设置为** **0。


Add a condition to the paging container

这就是我们刚才讨论的伪循环。所以每次滚动值为 -1171 时该条件都会立即把它移动到 2342。 duration 需要为 0,因为我们不希望用户看到任何视觉变化。我们希望它瞬间滚动到 2342。

 3. 再添加一个条件。当 paging 的滚动值为** 3513 时,将分页容器滚动到 0**。别忘了将** duration **设为 0,因为我们希望滚动是不可见且瞬时的。

让我们在预览窗口中检查一下……你刚刚完成了一个循环滚动轮播!


Looping Scroll Carousel Prototype Made With ProtoPie

你的轮播原型完成了!

试着操作这个轮播,看看体验有多么顺滑!这很有趣。

在这个教程中,你实现了滚动触发器、变量和条件。更不用说循环效果了!

试着运用这些所学内容,你将能够创建出更有趣的交互!我们很期待看到你疯狂的实验。用 ProtoPie 创建你自己的原型,并在 TwitterInstagram 上使用 #MadeWithProtoPie 分享它

[下载 ProtoPie]