滑动输入条的定义及应用场景

滑动输入条是一种滑动型输入器,展示当前值和可选范围。当用户需要在数值区间/自定义区间内进行选择时,可使用滑动输入条,选择的值可为连续值或离散值。滑动输入条的使用方法很简单,只需要拖动滑杆上的滑块便可以选择输入值,一般运用在多媒体播放器中,可用来调节音量大小或视频进度等具有固定范围值的输入场景。本期内容主要分享如何利用Axure制作滑动输入条这一交互组件。

演示地址(点击右侧蓝色文字) :AxureShop原型演示

打开页面后,点击左侧目录“滑动输入条”,查看演示效果。

连续型滑动输入条

连续型示意图

绘制线框图

上图为滑动输入条的示意图,使用Axure快速完成线框图的绘制。拖动一个矩形,设置填充色为灰色,尺寸为500x10,圆角半径设置为250,该矩形作为滑动条的背景,滑动范围取决于此背景的长度。复制矩形,将其填充色设置为蓝色,并将其转换为动态面板,与背景进行左对齐,上下居中对齐。第二个矩形作为输入条,视觉上反应了输入值的大小,类似于进度条。默认情况下将输入条的宽度设置为1。

拖动一个圆,设置半径为21,边框线宽度设置为2个像素,边框线颜色设置为蓝色,将圆转换为动态面板,作为拖动的滑块,拖动这个滑块可以控制输入的值。拖动一个矩形至滑块的上方,矩形尺寸设置为40x35,将矩形变换为上图中一边带有三角形的不规则形状。此形状用于显示输入的数值,我们称之为输入值,在形状中输入默认值0。

制作交互效果

01 拖动滑块

当拖动滑块时,会发生以下几个交互效果:

  1. 滑块在背景范围内移动
  2. 输入条长度发生变化
  3. 输入值生变化,输入值与滑块同步水平移动

用户拖动滑块这个动作可以利用“拖动时”事件来完成,首先为滑块添加“拖动时”事件。

效果1:我们可以利用left和right函数来控制滑块的移动范围,使得滑块的移动范围不会超出背景的左右两侧。方法已经找到了,下面我们开始设置交互。为拖动事件添加动作“移动”,设置滑块为跟随水平拖动,设置移动边界为大于背景的左侧,小于背景的右侧。交互配置如下图所示。

控制移动范围

效果2:为滑块拖动事件添加第二个动作“设置尺寸”,设置输入条的宽度为[[LVAR1.right-LVAR2.left-2]],其中变量LVAR1为滑块,LVAR2为输入条。高度保持不变,表达式为Target.height,Target意为动作对象。

补充说明:设置宽度的时候为什么要减去2个像素呢?因为滑块是圆形,如果这里不减少2个像素,视觉上会造成输入条宽度超出了滑块右侧边缘。

输入条宽度

输入条高度不变

效果3:为滑块拖动事件添加第三个动作“设置文本”,设置输入值的表达式为[[Math.ceil(LVAR1.width/LVAR2.width*100)]]%,其中变量LVAR1为输入条、LVAR2为背景,Math.ceil为向上取整函数,获取大于或者等于指定数值的最小整数。这里我们假设输入的值为百分比。

设置输入值

添加第四个动作“移动”,水平移动输入值至滑块上方,交互设置如下图所示,This为事件对象,Target为动作对象。

移动输入值

滑块拖动事件的完整交互配置如下图所示:

滑块拖动时交互配置

02 鼠标移入与移出

鼠标移入至滑块时,显示输入值;鼠标从滑块移出时,隐藏输入值。

这两个交互实现起来就比较容易了。选中滑块,为滑块添加鼠标移入事件,添加动作“显示/隐藏”,显示输入值;为滑块添加鼠标移出事件,添加动作“显示/隐藏”,隐藏滑块。交互配置如下图所示。

输入值的显示与隐藏

到这里,一个基础的连续型滑动输入条原型就制作完成了,预览下,验证我们配置的交互效果吧!

离散型滑动输入条

离散型示意图

绘制线框图

离散型的特点是输入的值是非连续的,是事先定义好的几个固定值。上图为离散型输入条的示意图,使用Axure快速完成线框图的绘制。

拖动一个矩形,设置填充色为灰色,尺寸为500x10,圆角半径设置为250,该矩形作为滑动条的背景,滑动范围取决于此背景的长度。复制矩形,将其填充色设置为蓝色,并将其转换为动态面板,与背景进行左对齐,上下居中对齐。第二个矩形作为输入条,视觉上反应了输入值的大小,类似于进度条。默认情况下将输入条的宽度设置为1。

拖动一个圆,设置半径为21,边框线宽度设置为2个像素,边框线颜色设置为蓝色,将圆转换为动态面板,作为拖动的滑块,拖动这个滑块可以控制输入值。在背景上添加5个小圆,圆半径为10,边框线宽度设置为2个像素,边框线颜色设置为灰色,注意边框线的灰色与背景的灰色不同。将这5个圆等距离分布在背景上方,这5个圆作为输入的节点,每一个节点都代表了一个固定的输入值。

拖动一个矩形至滑块的上方,矩形尺寸设置为40x35,将矩形变换为上图中一边带有三角形的不规则形状。此形状用于显示输入的数值,我们称之为输入值,在形状中输入默认值0。

制作交互效果

拖动滑块时,有以下几个交互效果:

  1. 滑块移动至附近的节点处
  2. 输入条长度发生变化
  3. 输入值生变化,输入值与滑块同步水平移动

下面我们来分析如何实现这几个效果,这几个效果是同步发生的,滑块的位置同时也影响了后面的两个效果。所以我们需要统筹综合考虑这三个效果。

首先我们需要判断滑块当前所处的位置,然后才能知道附近的节点是哪一个。根据滑块移动后的节点位置,就可以方便的计算出输入条的长度以及输入值。滑块拖动后的位置也与拖动方向有关,所以用户的拖动动作可以拆分为两个,一个是向右拖动,另一个是向左拖动。

01 向右拖动滑块

向右拖动滑块,我们可以利用动态面板的向右拖动结束事件,首先为滑块添加“向右拖动结束时”事件。示意图中有5个节点,拖动滑块时将会停靠在这5个位置。假设滑块处于背景的最左侧,这个时候向右拖动滑块时,滑块移动至节点1的位置,输入条的长度也延伸至节点1位置,输入值为20%,输入值元件水平移至滑块的上方。交互配置如下图所示。

情行条件中变量LVAR1位节点1。第一个“移动”动作配置中,LVAR1为滑块,LVAR2为节点1,表达式[[LVAR2.x-(LVAR1.width-LVAR2.width)/2]]主要用来将节点1与滑块进行居中对齐;“设置尺寸”动作中的变量LVAR1为节点1,LVAR2为背景。

滑块处于背景左侧

添加第二个情形,当滑块处于节点1与节点2中间时,移动滑块至节点2位置,输入条的长度延长至节点2位置,输入值为40%,输入值水平移至滑块上方,交互配置如下图所示。情形条件中的第一个变量LVAR1为节点2,第二个LVAR1为节点1。“移动”动作中的变量LVAR1为滑块,变量LVAR2为节点2。“设置尺寸”动作中的变量LVAR1为节点2,变量LVAR2为背景。

滑块位于节点1与节点2中间

以此类推,滑块处于节点2与节点3之间时,移动滑块至节点3位置,输入条的长度延长至节点3位置,输入值为60%,输入值水平移至滑块上方;滑块处于节点3与节点4之间时,移动滑块至节点4位置,输入条长度延长至节点4位置,输入值为80%,输入值水平移至滑块上方;滑块处于节点4与节点5之间时,移动滑块至节点5位置,输入条长度延长至节点5位置,输入值为100%,输入值水平移至滑块上方。这3种情况的交互设置如下面三幅图所示。

滑块位于节点2和节点3之间

滑块位于节点3和节点4之间

滑块位于节点4和节点5之间

02 向左拖动滑块

刚才我们分析了向右拖动操作,下面再来分析向左拖动操作,向左拖动这一操作可以利用动态面板的“向左拖动结束时”事件,首先为滑块添加“向左拖动结束时”事件。

如果滑块处于节点4的右侧,则滑块移动至节点4位置,输入条的长度缩短至节点4位置,输入值为80%,输入值水平向左移动至滑块上方,交互设置如下图所示。

情形表达式中的变量LVAR1为节点4;第一个“移动”动作当中的变量LVAR1为节点4;“设置尺寸”动作当中的变量LVAR1为节点4,变量LVAR2为背景。

滑块位于节点4右侧

添加第二个情形,当滑块处于节点3与节点4中间时,移动滑块至节点3的位置,输入条的长度缩短至节点3位置,输入值为60%,输入值水平向左移至滑块上方。交互配置如下图所示。情形条件中的第一个变量LVAR1为节点3,第二个LVAR1为节点4。“移动”动作中的变量LVAR1为节点3。“设置尺寸”动作中的变量LVAR1为节点3,变量LVAR2为背景。

滑块位于节点3和节点4之间

以此类推,滑块处于节点2与节点3之间时,移动滑块至节点2位置,输入条的长度缩短至节点2位置,输入值为40%,输入值水平移至滑块上方;滑块处于节点1与节点2之间时,移动滑块至节点1位置,输入条长度缩短至节点1位置,输入值为20%,输入值水平移至滑块上方;滑块处于背景左侧与节点1之间时,移动滑块至背景左侧位置,输入条长度为1,回到背景左侧起始位置,输入值为0,输入值移至滑块上方。这3种情况的交互设置如下面三幅图所示。

滑块位于节点2和节点3之间

滑块位于节点1和节点2之间

滑块位于背景左侧和节点1之间

03 鼠标移入与移出

鼠标移入至滑块时,显示输入值;鼠标从滑块移出时,隐藏输入值。

选中滑块,为滑块添加鼠标移入事件,添加动作“显示/隐藏”,显示输入值;为滑块添加鼠标移出事件,添加动作“显示/隐藏”,隐藏滑块。交互配置如下图所示。

输入值的显示与隐藏

好了,到这里离散型滑动输入条的交互原型已经制作完成,点击预览查看原型交互效果。


思考小结

滑动输入条的交互看似步骤繁多,但梳理清楚实现思路,还是比较容易制作的。遇到这类复杂的交互效果,首先我们要分析用户做了几个操作,用户的操作通常都会对应一个事件或多个事件的配合。用户的每一个操作,触发几个交互效果,这里就需要我们抽丝剥茧,进行更细致的分析。观察到的每一个交互效果,都可以通过Axure当中的某一个动作实现。

看完上面的内容,希望对大家能够有所帮助,你的收获就是我的满意。在这里给大家出一个思考题,如果这个滑动输入条,支持手动输入值,那么该如何实现呢?

关注并转发后,可私信关键字“滑动输入”可获取本节课案例的源文件。

【Axure原型设计】专注分享Axure基础教程、交互案例以及经验技巧,并不定期赠送各种资源福利,包含:系统组件库、页面模板、实战案例等。

axure如何页面滑动时广告位上移_Axure案例:滑动输入,学会这一招,你就能超越80%的人...相关推荐

  1. axure如何页面滑动时广告位上移_Axure实现滚动广告效果

    最近在学习Axure,想要实现滚动广告的效果,琢磨了好久,另外参考了网上的各种的参考资料,终于实现了部分效果.所以想把实现的方式跟大家分享一下.目标效果 亚马逊中国购物网站的首页中滚动广告的部分.参考 ...

  2. axure如何页面滑动时广告位上移_Axure8.0教程:模拟滑动效果

    本文简要地为大家展示了,如何Axure8.0模拟纵向滑动的效果,enjoy~ 好长时间不怎么玩儿Axure了,以至于很多功能都有点快忘记了,今天下午无聊就想在网上找了一圈关于Axure怎么做纵向滑动的 ...

  3. axure如何页面滑动时广告位上移_新手APP运营如何做广告位投放

    运营是什么?这种问题在各种论坛.贴吧.百度知道.问答百科类中都会出现.上面也有各种大神各式各样的回答,从不同角度向我们阐述了什么是运营.用 户运营.内容运营.社区运营.活动运营.市场运营.等等,各种各 ...

  4. axure9怎么让页面上下滑动_Axure制作:页面上下滑动时的菜单栏悬浮吸顶效果

    昆仑女神的故事,sem优化,破产管理人 在移动端页面上,用手上下滑时,超过一定向上滑动时,菜单栏能有吸顶效果,如何用axure实现呢? 作者在最近在手机移动端的时候,有一个动画,希望达到效果:用手上下 ...

  5. 完美解决vue项目中弹出框滑动时,内部页面也跟着滑动问题

    完美解决vue项目中弹出框滑动时,内部页面也跟着滑动问题 参考文章: (1)完美解决vue项目中弹出框滑动时,内部页面也跟着滑动问题 (2)https://www.cnblogs.com/qhanti ...

  6. h5上下滑动时页面出现抖动问题解决

    h5页面加载列表使用SUI中infinite-scroll. 上下滑动时页面出现抖动,尝试了多种办法依然解决不了. 最终解决办法 <div style="overflow: auto; ...

  7. iOS 同一页面加载上百张图片,迅速滑动时导致内存暴涨程序崩溃的参考解决方法

    本例中项目大致流程是先由客户端拍照或者选择图库中的图片进行上传,然后可以从详情页面中浏览所有上传的图片,由于图片是按照相册进行分类,而每个相册中最多可以有50张照片,极限的情况是详情页面最多可以有20 ...

  8. 移动端html右滑空白,BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法...

    最近的一个项目 前台使用了 bootstrap.css + angularjs, 后台只处理数据(用的php,处理结果直接 json_encode($arr),非常爽).一直在Chrome的仿真机测试 ...

  9. axure实现复选框全选_Axure RP实例教程:全选与取消全选效果

    原标题:Axure RP实例教程:全选与取消全选效果 Axure RP 9 Mac这款原型设计软件能让设计者快速创建应用软件,或者在web网站的线框图.流程图.原型和规格的设计制作,从低到高的视觉和交 ...

最新文章

  1. 视频来了 | 基于结构光投影三维重建技术系列课程
  2. Quartz 实现分布式任务调度
  3. sbt構建一個spark工程(scala+spark+sbt)
  4. 基于容器服务 ACK 发行版打造 CNStack 社区版
  5. Scrapy网络爬虫框架实际案例讲解,Python爬虫原来如此简单!
  6. 特殊乘法 [清华大学计算机研究生机试真题]
  7. CentOS 6.4安装本地yum源
  8. c#读取csv到数组_C#读取CSV文件的方法
  9. Java学习笔记目录索引 (持续更新中)
  10. android ppt 自动播放视频,ppt如何循环播放,ppt如何添加视频设置自动播放(ppt转换成视频)...
  11. 中国广电即将放号,感受到压力的中国移动率先推出19元5G套餐
  12. wav转mp3,wav怎么转换成mp3?
  13. linux命令小记(grep、awk、sed)
  14. css 图片变大缩小,css3实现图片的变大变小
  15. python是解释性语言!
  16. libvirt API学习笔记
  17. 读书笔记:时间与精力管理:你的精力管理决定你的人生层次
  18. 配置文件,运行级别,软件安装方式,运维职责
  19. 基于stm32f103的智能风扇系统
  20. 拓商:拼多多客服回复慢,到底应该怎么解决?

热门文章

  1. redis应用之——获取若干最新注册用户
  2. Thymeleaf 的使用
  3. 黄聪:HBuilder左侧项目管理器如何不与标签页一起自动切换
  4. Linux命令解释之setfacl,getfacl,chattr
  5. 【数据结构笔记32】排序算法概述、简单排序(冒泡排序、插入排序)、逆序对
  6. php7 参数类型限定,PHP 7.2新特性:参数类型声明(附代码)
  7. java spring oauth2.0_java – Spring引导oauth2管理httpbasic认证
  8. mathtype7.x与基本使用
  9. Vivado入门使用指南之----按键消抖(仿真与在线逻辑分析仪仿真-不使用ip)
  10. mysql事务操作代码_Mysql中事务的使用【mysql】