童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

Axure教程:如何实现爱彼迎App首页Banner的切换效

5月17日 皇极城投稿
  本文分享一个用Axure实现爱彼迎App首页Banner切换效果的方法,供大家参考,欢迎一起交流。
  作者最近闲暇时间试着将爱彼迎App的Banner切换效果用Axure实现出来,网上类似的教程不多,所以给大家分享一下。本文没有将每一个步骤分享出来,而是提供一个实现的思路。对Axure的初学者来说可能有点难懂,后面会提供源文件下载。
  下图是将要实现的效果截屏:
  几个需求点
  1。到边界时的拖动阻尼回弹效果(见下图)
  2。停止拖动时若为非正常位置,则自动归位(见下图)
  3。快速拖动时,自动切换到下一个Banner(见下图)
  4。左右拖动时,限制页面上下拖动;上下拖动时,限制Banner左右拖动(见下图)
  因为该Banner区域即能左右拖动,切换Banner,也能上下拖动进行页面的拖动,所以如果不做限制,则会出现拖动时Banner与页面同时移动的情况。
  需要处理的几个需求点明确了,再就是如何通过Axure的函数功能来实现了。本文会用到以下几种函数:
  1。TotalDragx和TotalDragy
  获取拖动元件从开始到结束的沿X或Y轴移动距离
  2。DragTime
  获取拖动元件从开始到结束的时间,单位毫秒ms。
  3。Math。abs(x)
  获取x的绝对值
  4。Math。pow(x,y)
  获取x的y次幂
  接下来,来解决刚才提到的四个需求点
  本文先把四个需求的拖动事件和拖动结束事件拆分开,最后会把四个需求的事件写在一起。
  (设计原型屏幕尺寸为375812)
  1。到边界时的拖动阻尼回弹效果
  拖动阻尼效果其实就是随着水平拖动距离(x轴)的增加,Banner的移动距离(Y轴)增量减少。见下图:
  这个函数关系可以用函数实现。尝试了几个函数,发现函数y4x(0。5)图像基本满足要求。
  再加上条件限制就OK了:
  左侧的阻尼效果:
  【条件】当Banner模块的X坐标20时(Banner模块距离屏幕左侧边距为20,以下同)
  【动作】拖动时移动Banner模块到达位置:X坐标〔〔4Math。pow(TotalDragX,0。5)20〕〕,Y坐标〔〔this。y〕〕
  右侧的阻尼效果:
  在右侧的时候,阻尼的效果在Banner模块往左拖动时出现,所以其TotalDragX的值会是负数,需要加上绝对值函数。
  【条件】当Banner模块的X坐标670
  【动作】拖动时移动Banner模块到达位置:X坐标〔〔4Math。pow(Math。abs(TotalDragX),0。5)670〕〕,Y坐标〔〔this。y〕〕
  回弹效果可与自动归位效果函数写在一起,请往下看。
  2。停止拖动时若为非正常位置,则自动归位
  拖动结束时,通过判断Banner模块的X坐标来定义归位的Banner位。
  归位Banner1的情况:
  【条件】当Banner模块的X坐标小于160
  【动作】拖动结束时移动Banner模块到Banner1的正常位,X坐标为20,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  归位Banner2的情况:
  【条件】当Banner模块的X坐标500且160
  【动作】拖动结束时移动Banner模块到Banner2的正常位,X坐标为325,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  归位Banner3的情况:
  【条件】当Banner模块的X坐标大于500
  【动作】拖动结束时移动Banner模块到Banner3的正常位,X坐标为670,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  3。快速拖动时,自动切换到下一个Banner
  当拖动的距离未达到自动归位的条件时,可通过拖动的速度来判断是否移动至下一个Banner位。
  可通过鼠标拖动的距离和拖动的时间来判断。此时需要加入全局变量来记录当前Banner模块的位置数(后面会用到)。
  添加全局变量,如名称设为“BannerState”,默认值为1。定义值1Banner位为1,值2Banner位为2,值3Banner位为3。
  在上文自动归位的【动作】中,再加入变量设置,结果如下:
  归位Banner1的情况:
  【条件】当Banner模块的X坐标160
  【动作1】拖动结束时移动Banner模块到Banner1的正常位,X坐标为20,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为1。
  归位Banner2的情况:
  【条件】当Banner模块的X坐标500且160
  【动作1】拖动结束时移动Banner模块到Banner2的正常位,X坐标为325,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为2。
  归位Banner3的情况:
  【条件】当Banner模块的X坐标500
  【动作1】拖动结束时移动Banner模块到Banner3的正常位,X坐标为670,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为3。
  有了全局变量记录Banner模块的位数,就可以通过拖动的方向(TotalDragX的正负)和拖动的时间(DragTime),来判断需要移动的下一个Banner位数。本文快速拖动定义为400ms内拖动距离为50。
  快速拖动自动至Banner1的情况(由Banner2至Banner1):
  【条件1】Math。abs(TotalDragX)50(移动的距离判断)
  and【条件2】DragTime400ms(移动的时间判断)
  and【条件3】TotalDragX0(移动的方向判断)
  and【条件4】变量BannerState2(当前Banner位数的判断)
  【动作1】拖动结束时移动Banner模块到Banner1的正常位,X坐标为20,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为1。
  快速拖动自动至Banner2的情况(由Banner1至Banner2):
  【条件1】Math。abs(TotalDragX)50(移动的距离判断)
  and【条件2】DragTime400ms(移动的时间判断)
  and【条件3】TotalDragX0(移动的方向判断)
  and【条件4】变量BannerState1(当前Banner位数的判断)
  【动作1】拖动结束时移动Banner模块到Banner2的正常位,X坐标为325,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为2。
  快速拖动自动至Banner2的情况(由Banner3至Banner2):
  【条件1】Math。abs(TotalDragX)50(移动的距离判断)
  and【条件2】DragTime400ms(移动的时间判断)
  and【条件3】TotalDragX0(移动的方向判断)
  and【条件4】变量BannerState3(当前Banner位数的判断)
  【动作1】拖动结束时移动Banner模块到Banner2的正常位,X坐标为325,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为2。
  快速拖动自动至Banner3的情况(由Banner2至Banner3):
  【条件1】Math。abs(TotalDragX)50(移动的距离判断)
  and【条件2】DragTime400ms(移动的时间判断)
  and【条件3】TotalDragX0(移动的方向判断)
  and【条件4】变量BannerState2(当前Banner位数的判断)
  【动作1】拖动结束时移动Banner模块到Banner3的正常位,X坐标为325,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为3。
  4。左右拖动时,限制页面上下拖动;上下拖动时,限制Banner左右拖动
  此需求可以通过判断拖动时的沿X轴与Y轴的距离大小来判断。
  若Math。abs(TotalDragX)Math。abs(TotalDragY),即瞬时水平移动垂直移动,则限制页面垂直方向的拖动。
  若Math。abs(TotalDragX)math。abs(TotalDragY),即瞬时水平移动垂直移动,则限制Banner模块的水平拖动。
  同时还需要利用变量来记录判断的结果,其相当于一个开关的作用,需加入到上文的【条件】和【动作】中。
  添加变量,如名称为“Movable”,默认值为0。定义值0限制水平拖动,1限制垂直拖动。
  在拖动时,进行TotalDragX和TotalDragY的对比判断,并且置于最前。
  【条件】Math。abs(TotalDragX)Math。abs(TotalDragY)
  【动作】拖动时设置变量“Movable”值为1
  【条件】Math。abs(TotalDragX)Math。abs(TotalDragY)
  【动作】拖动时设置变量“Movable”值为0
  至此,Banner模块的拖动事件以及拖动结束时间基本就可以写全了。合并后如下:
  Banner模块拖动时事件(case1case6)
  先置判断
  case1
  if【条件】Math。abs(TotalDragX)Math。abs(TotalDragY)
  【动作】拖动时设置变量“Movable”值为1
  case2
  if【条件】Math。abs(TotalDragX)Math。abs(TotalDragY)
  【动作】拖动时设置变量“Movable”值为0
  垂直拖动
  case3
  if【条件】变量Movable值0
  【动作】拖动时移动:垂直拖动
  水平拖动
  case4(左侧阻尼)
  if【条件1】当Banner模块的X坐标20时
  【条件2】变量Movable值1
  【动作】拖动时移动Banner模块到达位置:X坐标〔〔4Math。pow(TotalDragX,0。5)20〕〕,Y坐标〔〔this。y〕〕
  case5(右侧阻尼)
  if【条件1】当Banner模块的X坐标670
  【条件2】变量Movable值1
  【动作】拖动时移动Banner模块到达位置:X坐标〔〔4Math。pow(Math。abs(TotalDragX),0。5)670〕〕,Y坐标〔〔this。y〕〕
  case6(无阻尼水平拖动)
  if【条件】变量Movable值1
  【动作】拖动时移动:水平拖动
  Banner模块拖动结束时事件(case1case8)
  case1
  if【条件】无
  【动作】设置变量Movable值0
  自动归位
  case2(归位Banner1的情况)
  if【条件】当Banner模块的X坐标160
  【动作1】拖动结束时移动Banner模块到Banner1的正常位,X坐标为20,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为1。
  case3(归位Banner2的情况)
  elseif【条件】当Banner模块的X坐标500且160
  【动作1】拖动结束时移动Banner模块到Banner2的正常位,X坐标为325,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为2。
  case4(归位Banner3的情况)
  elseif【条件】当Banner模块的X坐标500
  【动作1】拖动结束时移动Banner模块到Banner3的正常位,X坐标为670,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为3。
  快速拖动切换
  case5(由Banner2至Banner1)
  elseif【条件1】Math。abs(TotalDragX)50(移动的距离判断)
  and【条件2】DragTime400ms(移动的时间判断)
  and【条件3】TotalDragX0(移动的方向判断)
  and【条件4】变量BannerState2(移动至的Banner位数的判断)
  【动作1】拖动结束时移动Banner模块到Banner1的正常位,X坐标为20,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为1。
  case6(由Banner1至Banner2)
  elseif【条件1】Math。abs(TotalDragX)50(移动的距离判断)
  and【条件2】DragTime400ms(移动的时间判断)
  and【条件3】TotalDragX0(移动的方向判断)
  and【条件4】变量BannerState1(移动至的Banner位数的判断)
  【动作1】拖动结束时移动Banner模块到Banner2的正常位,X坐标为325,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为2。
  case7(由Banner3至Banner2)
  elseif【条件1】Math。abs(TotalDragX)50(移动的距离判断)
  and【条件2】DragTime400ms(移动的时间判断)
  and【条件3】TotalDragX0(移动的方向判断)
  and【条件4】变量BannerState3(移动至的Banner位数的判断)
  【动作1】拖动结束时移动Banner模块到Banner2的正常位,X坐标为325,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为2。
  case8(快速拖动自动至Banner3的情况,由Banner2至Banner3)
  elseif【条件1】Math。abs(TotalDragX)50(移动的距离判断)
  and【条件2】DragTime400ms(移动的时间判断)
  and【条件3】TotalDragX0(移动的方向判断)
  and【条件4】变量BannerState2(移动至的Banner位数的判断)
  【动作1】拖动结束时移动Banner模块到Banner3的正常位,X坐标为325,Y坐标为〔〔this。y〕〕,动画线性,时间400ms
  【动作2】拖动结束时设置变量“BannerState”值为3。
  以上为所需的全部拖动时事件和拖动结束时事件。
  最后说一下如何用Axure发布链接,添加在手机主屏上。
  1。按F6发布,配置如下,点击确定发布,得到发布的链接。
  2。用手机自带的浏览器打开链接,添加到home主屏上。
  本文没有贴源文件的用例截图,而是将思考的步骤拆分出来一步步地得到所需的结果(希望大家能看明白,作者注),欢迎一起交流学习,有什么问题建议可以留言。后期有时间再做更多的效果出来分享给大家!
  原型下载链接:(上传的原型文件不是完全与这次分享一致,作者后续又加了点特效,Duang!而且作者画图喜欢用动态面板封装母版,层级较多)
  链接:https:pan。baidu。coms19knKvUCwHAc9GOnEQsxXD密码:y6nw
  预览链接:(建议用手机自带浏览器打开,添加到主页上再预览)
  https:ho1abp。axshare。com
  本次分享到此结束,感谢各位同学观看!
投诉 评论 转载

Axure教程:如何实现爱彼迎App首页Banner的切换效本文分享一个用Axure实现爱彼迎App首页Banner切换效果的方法,供大家参考,欢迎一起交流。作者最近闲暇时间试着将爱彼迎App的Banner切换效果用Axure实现……AxureRP9Beta开放下载,距离Axure9正式版已经AxureRP9。0Beta已经更新,最新版已经开放下载,最新版本号为:9。0。0。3611。AxureRP9下载地址:目前Axure官网已经开放下载,下载地址为:……中继器使用场景(四):新闻类APP频道自主增减今天我们以腾讯新闻为例,讲一下如何做出app内频道自主增减的效果。新闻类app由于内容的原因,一般会分为很多的阅读频道,比如:要闻、娱乐、体育、金融等等,用户可根据自己的……Axure教程:天气APP及色彩主题的切换本文主要介绍了用Axure制作高保真天气APP以及色彩主题切换一、效果展示:原型体验地址:https:p5eysh。axshare。comc2二、操作分析……Axure:APP图片动态切换场景本文主要介绍了APP中图片动态切换的运用,一起来看看效果图:操作分析鼠标向左向右滑动,图片动态切换至下一张上一张,且当前图片尺寸变大,清晰度由透明变不透明。……Axure教程:制作进度条的简单方法看到大家在制作进度条的时候都喜欢用函数去实现,函数的实现方法虽然精准,但是函数复杂导致耗时耗力。在能够实现相似效果的情况下,我选择使用懒人的方法好了,动态面板走起效果图:……原型设计:百词斩单词翻转还原效果实现最近无意间被百词斩官网首页的页面效果所吸引,当我们选择一个不认识的单词时,单词会进行翻转,并显示为图片状态,并且会在一段时间后还原为单词状态。依照官网的样式,根据自己的理解绘制……Axure:如何实现Banner导航悬浮顶部效果(PC端)?本文内容适合初级Axure同学学习,Axure高手有更快捷的方法可达此效果欢迎评论留言,一起交流学习背景相信大家在工作中遇到这样的一个难题,绞尽脑汁,尝试N种方法,……中继器使用场景(三):轮播图放大效果本文以“人人都是产品经理”手机app原型为例,讲解轮播过程中的,侧图留框、主图放大的功能,以及自动轮播和手动拖动的实时切换。(末尾有彩蛋)现在手机app中我们经常能看到有……Axure设计:双向列表带计数选择列表框左右双向选择效果在互联网平台中应用非常多,从左侧的待选项中选中选项移入右侧,从右侧的已选项中取消选项移入左侧。作者将通过这篇案列分享,教大家使用Axure制作实现“双向列……Axure函数系列使用字符串函数实现模糊搜索效果继续本系列Axure函数教程,上一篇文章主要给大家分享了Slice、Concat、Math。floor等字符串处理函数的使用,本篇文章将结合中继器给大家讲解IndexOf函数的……原型的第一性原理:讲清楚目标一个产品需要有一个核心定位,我们的原型也首先要说清楚这个定位所转化过来的目标,这是第一层次,我称为产品目标。在动手进行原型制作之前,还有一个很重要的事情要先梳理清楚,我们可以称……
极简风格设计方法25则:将美更好的呈现漫谈CRM体系化建设1CRM与客户管理综述项目心得:移动端VR视频播放器设计总结用户认知:如何从0认识用户体验设计?关于个性化推荐算法及应用场景的几点思考干货贴:项目起始过程中11个常见UIUX调查问题技能干货:如何快速记住好用的sketch插件?APP设计:那些打动人心的设计点(3)创业公司设计师怎样从0到1设计一款APP(四)Hifi输出(产品经理需要用心做好的交互体验权限获取设计思考:如何化解业务和用户之间的尴尬?ERP项目改版设计三问:为何改?如何改?效果又如何?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界