搜索
出售我的作品
用户头像

又壹耳设计工作室

你还没有自我介绍哦~
用户头像

您还未登录

登录后即可体验更多功能
立即登录

搜索

搜索按钮
搜索历史
热门搜索
医疗
后台
电商
后台管理系统
CRM
ERP
大屏
您当前还不是平台作者,
立即申请成为作者?

温馨提示

本次下载需扣除1
剩余下载免费作品5
今日有效(每日获得1次)
当前剩余:1/1
 
永久有效(参与活动获得)
当前剩余:6/10
 
立即下载
获取更多下载次数
绑定手机号
发送验证码
根据《中华人民共和国网络安全法》要求,使用互联网服务需进行身份信息验证。请绑定手机号验证,感谢您的支持和理解
立即绑定

获取更多下载次数

免费下载产品原型,提高工作效率

添加小师妹微信
微信扫一扫添加
注意:添加完后记得刷新哦
复制以下链接地址,邀请好友访问
复制链接
客服头像
在 线 咨 询
象天尺客服二维码 微信扫一扫咨询 >
返回顶部

Axure 实现刮刮乐效果

2023-06-28 发布 589 次浏览

话不多说,先看效果。

界面上有个圆圈,等同于手指,在涂刮区域移动的时候什么也不会发生,当按下这个圆圈,就如同手指按下开始涂刮,移动的时候,手指划过的区域会被刮掉。

这个效果的界面组成如下。

其中【涂刮区域】是由一个个小矩形拼凑起来的,把每个矩形之间的间距拉开一点就可以很清楚地看到每个矩形。

交互的思路就是当作为【手指】的圆圈接触到【涂刮区域】中的矩形后,将对应的矩形隐藏,这里的矩形尺寸越细,涂抹的效果就越逼真。

但如果你真按这个思路做下去,你会开始怀疑人生。

首先这里的【涂刮区域】有超过400个矩形,你要把这个界面画出来就需要不少时间;另外,画好界面后,写交互的时候,需要每个矩形都判断是否与【手指区域】接触到,并进行隐藏,光是这个交互就能把人写废。

所以这里,我要分享通过【中继器】让这个效果实现起来更加简单的方法。

画界面

首先来看一下需要用到的元件以及它们的命名。

注意:

  • 背板区域和涂刮点设置一个自己喜欢的颜色就好
  • 涂刮点添加元件选中时的样式,将透明度设为0

配置中继器

首先需要往中继器中添加数据,每条数据代表一个矩形涂刮点,我这里添加了499个。

一条一条添加太花时间?我这里有个快捷的方式分享给你。

到 Excel 表格中拖出需要的数据数量,然后复制粘贴到中继器中就可以了。

中继器默认是垂直排列,每行一条数据,显然不符合要求,所以需要在中继器-样式-布局板块中调整一下中继器布局。

调整后的效果如下。

然后把中继器挪到【背板区域】和【中奖文字】正上方。

写交互

首先是当鼠标在页面上移动的时候,【手指区域】跟随鼠标移动。

注意:

  • 这里跟随鼠标移动的是【动态面板】中的【圆形】,不是动态面板
  • x 值、y 值分别减去【圆形】宽度和高度的1/2是为了确保移动时,圆形的中心正对着鼠标指针

接着给【手指区域动态面板】添加【拖动】事件,拖动时,动态面板跟随拖动进行移动。

接下来进入到【中继器】中,选择中继器内的【涂刮点】矩形,并添加【载入时】的事件,这里判断如果当前的【涂刮点】接触到【手指区域】时,将当前涂刮点设置选中。

最后,跳出中继器,给【手指区域动态面板】添加【移动时】触发【涂刮点】【载入时】的事件。

这样,整个设计就做完了。

整体的逻辑是这样子的:

  • 移动鼠标,【手指区域】跟随移动
  • 按住【手指区域动态面板】时,动态面板跟随鼠标移动
  • 【手指区域动态面板】移动时,触发【涂刮点】载入时的事件
  • 每个【涂刮点】判断当前是否与【手指区域】有【接触】,如果有,当前就被【设置选中】
  • 【涂刮点】被选中时,样式变为透明,底部的信息就显示出来,呈现出刮掉的效果

几个问题

看到这里,相信你也产生了不少疑问,这个设计虽然简单,但是有点迂回,接下来我整理了一些你可能产生疑问的地方,并说明为什么是这么处理的,希望能厘清你的疑惑。

Q:为什么涂刮点是通过设置选中改变透明度实现,而不是直接隐藏?

A:中继器中的元件如果隐藏,其他元素会进行位置的调整,于是便会变成如下图的效果;但如果只是通过选中来改变透明度,便不会改变元件的位置,才能实现所需要的效果。

Q:在页面上移动的时候,为什么是移动【手指区域】,而不是移动【手指区域动态面板】?

A:如果这里移动动态面板,就会触发动动态面板【移动时】的事件,当鼠标移动到【涂刮区域】的时候,就会刮掉【涂刮点】,无法实现按住时才进行涂刮的效果。

Q:为什么要把事件写的那么迂回,在中继器中写完之后,又跑到中继器外面通过【手指区域动态面板】的移动来调用。

A:首先我们要清楚,【涂刮区域】的【涂刮点】是通过中继器动态生成的,而实际上我们只画了一个矩形而已,如果在中继器外部直接写事件,我们来看看会怎样。

比如我们直接改成在【手指区域动态面板】移动时判断是否接触到涂刮点,如果是,就选中涂刮点。

可以看到,这样改了之后,当【手指区域】移动到某个点时,整个涂刮区域都消失了。

这是因为,在外部调用的时候,会把整个【涂刮区域】都当成一个整体,一旦触发事件,所有涂刮点都会执行。

而把事件写在中继器内部就不一样了,每个涂刮点都是独立的,移动的时候也只判断当前的涂刮点有没有与手指区域接触到,从而实现我们所需要的效果。

Q:上文说,涂刮点尺寸越细,效果越好,怎么不设置为1?

A:中继器比较消耗资源,尤其是数据量大的时候,设置的涂刮点尺寸越细,需要的数据越多,消耗的资源也多,容易造成卡顿。

好了,以上便是本文的全部内容,感谢阅读。

 

本文由微信公众号:产品锦李(ID:IMPM996) 授权发布,未经许可,禁止转载

收藏 收藏 收藏 0
阅读排行榜
    加载数据中...
声明:象天尺内网友所发表的所有内容及言论仅代表其本人,并不反映任何象天尺之意见及观点。
登录 后评论
全部评论
文章信息
创作时间
2023-06-28