本文详细地为大家展示了如何用Axure,实现商品详情页中的放大镜效果,enjoy~
网站上面已经有一些关于放大镜效果的文章,但叙述的不是很详细,像我这样的小白可能看晕,我最近刚好学习到这里,所以且尝试把学到的尽可能详细的叙述出来,故本文长且详细,高手请直接忽略本文。
先看demo预览效果:
制作步骤
二、放置高清大图,让图片跟随黄色小矩形移动而移动,实现放大镜效果;
三、原图下面的缩略图点击切换效果。
动手制作
1. 按照步骤进行,首先准备一张矩形高清大图,放入axure中,选中将图片等比例缩小调整至合适大小(需要先计算好缩小的多少,比如我就是将900*600的图片的宽高缩小1/2,也就是450*300px,方便后续放大镜效果的实现);
2. 拖入矩形元件,取名“移动显示小块”(随意),调整透明度和大小,充当鼠标移动显示区域(该矩形元件也需要计算大小,其大小计算方式:
原高清大图:缩小后的图=缩小后的图:该矩形元件),原因是下图中左边红色的移动显示区域=右边的红色显示窗口。
3. 让移动显示区域动起来,在黄色的小矩形上面加一层和图片一样尺寸的透明的矩形元件,取名“浮层”(原因是不加浮层,黄色小矩形不能实时的移动)。
选中浮层,添加【鼠标移动时】事件,移动黄色矩形“移动显示小块”。
说明:给浮层添加鼠标移动事件,【鼠标移动时】移动黄色矩形为鼠标的X轴和Y轴的位置(Cursor.X),但是要减掉黄色矩形宽高的一半,保证鼠标移动时的位置就是黄色矩形的中心。
注意:事件中的Target是指黄色矩形,This指浮层。
到这一步能够实现如下效果:
设置边界:
说明:还是在【鼠标移动时】,点击添加用例,需要注意的是:
a)判断元件的top、botton、left和right时需要先添加局部变量获取到该元件之后再用.left获取其左边的值,上图中fuceng_div指浮层,move_div指黄色的小矩形。
b)判断上下左右边界的条件是单独的,并且是四个if判断条件,而非else if,在创建判断后选中该用例右键就能将else if转换为if判断。
c)在判断下边界和右边界时需要减去黄色矩形自身的宽度以及高度。
放置高清大图,让大图片跟随黄色小矩形移动而移动,实现放大镜效果
进行到这一步就已经成功一半了,能够实现黄色的小矩形在图片的范围内随意移动,接下来的工作就比较好办了。
接下来放置右边的放大镜显示区域,这里用一个动态面板,里面放置最初准备的高清大图(我准备的是900*600的图片),把图片命名后坐标设置为(0,0);
实现思路:
黄色小矩形之于图片就相当于动态面板之于面板中的高清大图片,黄色小矩形移动多少距离,动态面板中的大图片就得移动相应的距离乘大图是小图的多少倍,才能实现同步移动的效果。
需要注意的是,原图移动的是黄色的小矩形,而动态面板中移动的是大图的图片。要实现同步移动,需要计算出小矩形移动的距离,再把大图向负的方向移动小矩形移动距离的倍数。
即:大图移动的距离=-(小图移动的距离*小图之于大图的倍数)。
着手实现:
给黄色的小矩形添加【移动时】的用例,让小矩形移动时,右边动态面板中的图片也跟随移动。
用思路中的公式,计算xy的值,这里乘以2是因为大图是小图的2倍,小图移动一像素,大图就得移动两像素:
再按照相同的公式计算出Y的值,就能实现如下效果:
放大镜效果就制作完成了,接下来最后一步:
原图下面的缩略图点击切换效果
原理:利用中继器,存储四套三种尺寸的图片(缩略图,正常图,高清大图),再把中继器中的图片加载到相应的位置,然后加上点击事件即可。
实现思路:拖放中继器,进入中继器后放置一张小图占位,再把准备好四套三种尺寸的图片依次右键导入到中继器的数据列中,然后给中继器加上【每项加载时】用例,把每列数据图片的值加载到相应位置,最后给占位的小图加上点击事件。
拖入中继器,放入缩略占位小图:
编辑好中继器数据列名,右键导入图片,添加每项加载时用例,加载出图片。
给占位小图添加点击事件。
再给黄色小矩形和动态面板加上移入移出效果,所有功能就实现完毕。
Axure源文件:https://pan.baidu.com/s/1WN-opfWcBhuBnXGZFKOYLg
提取码:qonn