Axure实战08:创建一个BMI身体质量指数查询网站

简介: Axure实战08:创建一个BMI身体质量指数查询网站

image.png

在本章中,你将学会使用局部变量和函数创建一个BMI身体质量指数查询网站。

image.png

身体质量指数,BMI(Body Mass Index)指数,简称体质指数,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。

我们在健身时也常用BMI来判断我们当前需要减脂还是增重。

那么本章,我们就来学习下如何创建一个BMI身体质量指数查询网站。


项目创建


首先,创建一个新项目,命名为BMI。

image.png

基础样式-计算页


首先,我们给整个页面背景加个填充颜色。

我们在“样式”工具栏中设置背景颜色为#F2F2F2。

image.png

拖入一个“矩形1”组件,在“样式”工具栏中设置尺寸为400*500。

设置线段的线宽为0,圆角设置为8。

这样我们就得到了一个背景卡片。

image.png

拖入两个“文本标签”,更改文本标签的文字分别为“身高:”、“体重:”。

为保持美观,“身高”文本位于左上角,间距为(40,40),“体重”文本位于“身高”文本下方,距离卡片间距为(40,90),也就是距离“身高”文本30的位置。

image.png

拖入两个“文本框”组件,分别命名为“身高”、“体重”。

在“样式”工具栏中,设置都尺寸为200*30,文本字号设置为12,线段颜色调整为#E6E6E6,圆角度数调整为8,边距左边距设置为10。

image.png

然后在“交互”工具栏中,分别设置它们的提示文本为“示例:185”、“示例:60”,隐藏提示条件为“获取焦点”。

同时,还需要设置用户正在输入的效果,在“交互样式”中,选择“鼠标悬停的样式”,选择“更多样式选项”,设置“线段颜色”为#1890FF。

image.png

我们复制身高和体重的文本,把复制的内容移动至输入框右边,作为单位的文本。

这样就完成了输入框的内容。

image.png

下面我们继续完成按钮的绘制。

拖入一个“主要按钮”,修改文字为“一键查询”。

位置为距离“体重”输入框下30的位置,尺寸为200*30,内部文字字号为12,整个按钮的填充颜色为#1890FF,圆角度数为4。

image.png

拖入一个“水平线”组件,距离按钮的位置为30。

设置尺寸为400*1,线段颜色为#E6E6E6。

image.png

拖入一个“文本段落”组件,修改内部文字为:身体质量指数,是BMI(Body Mass Index)指数,简称体质指数,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。

设置它距离分割线和左右间距都为20,字号设置为12。

image.png

拖入一个“表格”组件,表格框架为5行2列。

整个表格距离上面的说明文字为30,单个表格尺寸为180*30。

选中整个表格,设置字体字号为12,表格线段填充颜色为#E6E6E6。

为区分表头和内容,选中第1行的1、2列,设置填充颜色为#A7D2F9。

image.png

以上,第一个页面已经搭建完成。

基础样式-结果页


下面,我们来实现结果页面的搭建。

我们选中说明文字和表格,右键,选择“转换为动态面板”。

image.png

双击动态面板进入内页。

点击“添加状态”,这样我们就得到了两个状态,并双击修改第一个状态为“计算前”,第二个状态为“计算后”。

image.png

我们选择“计算后”的状态。

拖入一个“三级标题”组件,修改文本文字为“计算结果”,并命名为“计算结果”。

设置文字字号为18号,排布方式为左右居中和上下居中,这样在结果文字变化时,仍然能保持在中间的位置。

image.png

拖入一个“文本段落”组件,距离“计算结果”文本间距为20,设置内部文字为“经检验,您的BMI结果为:偏瘦”。

设置文本段落组件的名称为“BMI结果”,设置字号为12号字,排布方式为左右居中。

image.png

拖入一个“文本标签”组件,设置文字为“BMI = 体重 / (身高)^2 ”。

设置字号为12号字,文字颜色为#AAAAAA。

image.png

以上,我们已经完成了所有页面的搭建,下面我们来实现BMI计算器的功能。

交互动作-页面切换


首先,我们需要点击“一键查询”按钮时,下面动态面板的内容从说明页面切换到结果页面。

我们给“一键查询”按钮增加交互动作,选中按钮,在右侧“交互”工具栏中选择“新建交互”,选择“单击时”,选择“设置面板状态”,目标为“动态面板”,设置状态为“计算后”。

image.png

这样,我们就实现了从计算前的状态切换到计算后的状态。

交互动作-结果计算


我们还需要有计算结果更新,我们可以使用动态面板状态切换动作来实现。

我们选中动态面板,在“交互”工具栏中,选择“新建交互”,选择“状态改变时”,选择“设置文本”,选择目标为“计算结果”,设置为“文本”。

值为:[[(LVAR1/((LVAR2/100)*(LVAR2/100))).toFixed(1)]]


image.png

科普一个知识点。

这里我们引用了函数和局部变量,我们的BMI计算的数学公式为:体重(公斤)/身高(米)^2

image.png

这里我们添加了2个局部变量:


LVAR1,获得的值为“元件文字”,来源于“体重”输入框。

LVAR2,获得的值为“元件文字”,来源于“身高”输入框。


我们“计算结果”的文本文字就为:体重LVAR1/(身高LVAR2*100)*(身高LVAR2*100)

LVAR2身高*100是因为我们身高使用的单位是厘米,那么需要换成单位米。

保留小数位,我们用到了.toFixed(2)函数,保留2位小数。

赋值的方式这里就不多说了,Axure统一使用[[]]进行公式计算。

我们在浏览器中预览下效果。

image.png

现在,我们已经可以计算BMI的值了,但也发现了一个问题,我们计算后不能返回重新计算,这就意味着我们只能用一次。

这不是我们想要的效果。


交互动作-逻辑优化


我们思考一下,当用户点击“一键查询”时,我们给出结果,那么在结果面,我们“一键查询”就需要变成“重新计算”。

我们选中“一键查询”按钮,右键,选择“转换为动态面板”。

image.png

双击进入内页,我们给这个按钮也添加一个状态“计算后”。

我们将“计算前”的按钮复制过来,修改样式,按钮内容修改为“重新计算”。

在“样式”工具栏中,文本字体颜色为#AAAAAA,边框线段宽度为1,线段颜色为#E6E6E6。

最后再加入“交互”工具栏中,将交互改为点击时,动态面板切换到“计算前”。

image.png

在这里别忘了,我们是设置的是点击按钮,下面“结果”页的动态面板发生切换。

但按钮本身也是变成动态面板,我们还需要加一个交互给按钮的两个面板状态。

image.png

我们给两个动态面板命名,这样更直观看到我们给动态面板添加的交互效果。

我们在浏览器中预览下效果。

image.png

交互动作-检测结果

最后,我们还需要设置下BMI计算结果的判断。

当我们计算出来的BMI结果<18.40时,BMI检验我们是偏瘦。

这里我们需要新建一个全局变量来存储计算结果的值,在系统顶部导航栏,选择“项目”,选择“全局变量”,新建一个变量名称为bmi的变量,默认值为0。

image.png

下面我们来实现赋值。

选中“结果页”的动态面板,在“状态改变时”的交互下新增动作,选择“设置变量值”,目标为“bmi”,设置值为“LVAR3”。

同理,LVAR3是我们设置的局部变量,来源于“计算结果”文本。

image.png

至此,我们已经通过局部变量和全局变量获得了bmi的值了。

接下来,我们来判断一下检测结果。

我们引用“查询”按钮的动态面板变换作为中间件。

image.png

我们选中“查询按钮”的动态面板,在“交互”工具栏中“新建交互”,选择“状态改变时”,选择“设置文本”,目标为“BMI结果”文字,设置值为“经检测,您的BMI结果为: 偏瘦”。

同时在“状态改变时”右上角添加情形,设置两个情形:

变量值bmi>0,且变量值bmi<18.40。

同理,我们再加几个情形,并修改目标“BMI结果”文字的设置值。

image.png

我们在浏览器中运行下效果。

image.png

哈哈哈,效果不错!

为了让这个网站能够公开访问,我们可以生成html文件,然后发布到gitHub或者gitee中,这样就可以将网站分享给朋友们了。


网站地址


BMI计算器:ricardowesley.gitee.io/bmi

快来动手试试吧!

相关文章
|
6天前
GEE案例——一个完整的火灾监测案例dNBR差异化归一化烧毁指数
GEE案例——一个完整的火灾监测案例dNBR差异化归一化烧毁指数
73 0
|
6天前
|
算法 数据挖掘
R语言面板数据回归:含时间固定效应混合模型分析交通死亡率、酒驾法和啤酒税
R语言面板数据回归:含时间固定效应混合模型分析交通死亡率、酒驾法和啤酒税
|
6天前
leetcode-6126:设计食物评分系统
leetcode-6126:设计食物评分系统
22 0
|
6天前
|
Python
python源码实例之根据生日预测星座和属相以及属相对应年份(附源码 可供学习)
python源码实例之根据生日预测星座和属相以及属相对应年份(附源码 可供学习)
43 1
|
10月前
测量学:水准和导线测量实验报告+详细解析
测量学:水准和导线测量实验报告+详细解析
242 0
|
6月前
游戏指标专业术语
游戏指标专业术语
46 0
|
10月前
|
算法
ArcGIS:如何利用站点数据(例如臭氧)进行克里金插值得到连续臭氧表面?
ArcGIS:如何利用站点数据(例如臭氧)进行克里金插值得到连续臭氧表面?
93 0
|
11月前
|
机器学习/深度学习 存储 人工智能
【OpenVI-视觉评价系列之MOS评价实战篇】手机存储不够用,清理照片太痛苦?MOS评价帮你挑选“垃圾”照片
MOS(Mean Opinion Score)是一种常用的主观质量评价方法,常用于视频、图像等多媒体领域中的质量评价。MOS视觉评价通常是通过让受试者观看视频/图像,对视频的清晰度、锐度、颜色饱和度、运动模糊、噪声等方面进行评价。然而,MOS视觉评价也存在一些局限,例如需要大量的受试者,评估时间较长等。因此,近年来,研究者们也开始探索使用客观评价方法来替代或补充MOS视觉评价。
350 2
【OpenVI-视觉评价系列之MOS评价实战篇】手机存储不够用,清理照片太痛苦?MOS评价帮你挑选“垃圾”照片
|
11月前
ChatGPT结合Excel公式办公 —— ChatGPT统计富豪信息
ChatGPT结合Excel公式办公 —— ChatGPT统计富豪信息
|
机器学习/深度学习 数据采集 算法
02 放大招,Python预测8月22号双色球号码!
02 放大招,Python预测8月22号双色球号码!