通过图片 找到桌面相同图片区域坐标_【Axure RP9原型案例】京东与淘宝的商品图片是如何被放大的...

摘要:在电商的商品详情页中我们经常会看到图片放大器的运用,我们以京东商品详情页为例来制作这样的原型效果。案例中综合运用了鼠标移入事件、鼠标移动事件,元件的移动、元件的显示/隐藏等交互动作。

7ebda8a2b8e3445d2982a3b9466b320b.png

京东示意图

观察交互

首先我们观察京东详情页中的图片放大效果。当鼠标在左侧图片上方移动时,图片上方会出现一个半透明的图层跟随鼠标移动,我们将这个半透明的图层称之为放大镜。同时在原图右侧会出现一张放大版的高清大图,高清大图显示的图片信息与左侧半透明图层下的图片信息一致。鼠标移出原图范围边界时,放大镜不在移动,同时右侧的高清大图消失。商品图片下方有多张缩略图,鼠标在这些缩略图之间来回移动可切换上方的商品图片。鼠标停留在缩略图上方时,缩略图会有一个选中效果,边框变为了红色。

思路分析

商品原图以及放大版的高清大图可以用动态面板盛放,动态面板的每个状态放置一张商品图片。商品图片及高清大图这两个动态面板中的图片顺序尽量保持一致。两个动态面板的尺寸相同,这里切记不要勾选自适应内容。

通过为页面设置鼠标移动事件,控制放大镜的移动,放大镜随鼠标移动,放大镜在水平方向的位置为鼠标的横坐标-放大镜一半的宽度,垂直方向的位置为鼠标的纵坐标-放大镜一半的高度。在设置交互之前,我们需要添加一些逻辑判断条件,限制鼠标的移动范围,即鼠标仅能在商品图片的动态面板内移动。

在这个交互事件中,我们还需要确定高清大图的坐标位置。与商品原图不同的是,商品原图上方的放大镜在移动,商品图片不动;右侧的高清大图在移动,上方的放大镜不动(这里的放大镜用于辅助理解,实际上不存在)。所以高清大图的移动距离=-放大镜相较于商品原图的移动距离x图片的放大倍数(高清大图的尺寸/商品原图尺寸)。放大镜的移动距离=放大镜的坐标-商品原图的坐标。

放大镜的默认位置与商品图片的位置一致,这里建议放大镜的尺寸大于等于商品图片的一半尺寸。默认隐藏放大镜和高清大图的动态面板。

缩略图切换商品图片这一交互效果,可以通过鼠标移入事件来显示不同的商品原图和高清大图。

制作原型

元件准备

拖动一个动态面板至设计区域,为动态面板增加5个状态,每个状态页面中放大一张商品图片,商品图片尺寸为400x400。再从元件库拖动一个动态面板至右侧,为动态面板增加5个状态,每个状态页面中放置一张高清大图,大图尺寸为800x800。放置一个红色半透明的矩形至商品图片动态面板的上方,矩形尺寸为200x200,矩形与商品图片位置相同。

8ab7317962ccd2fbb01d9f60a4bd6d17.png

图2-线框图

放大图片

为页面设置鼠标移动事件,添加逻辑条件,当鼠标的移动范围不超出原图动态面板的边界且动态面板状态为图1时,显示放大镜,移动放大镜至绝对位置([[Cursor.x-Target.width/2]],[[Cursor.y-Target.height/2]]),显示高清大图1,移动高清大图1至绝对位置([[(LVAR2.x-LVAR1.x)*2]],[[(LVAR2.y-LVAR1.y)*2]])。案例中有5张商品图片,同样的原理,为另外4张商品图片设置交互情形。最后还要为商品添加一个情形,即当鼠标移出商品图片边界外时,隐藏放大镜和高清大图。

c7af508bc948ab7fd18329845f163f9e.png

图3-放大图片

b6250819d5bf81de1803421c7b3361a7.png

图4-隐藏放大镜和高清大图

切换商品图片

将5张商品缩略图设置为一个选项组,为缩略图设置选中样式,即选中时边框线为红色。为每个缩略图添加鼠标移入事件,选中缩略图,切换商品图片和高清大图的动态面板状态,显示对应的图片。

049497d50528d582f0262c88e72790af.png

图5-缩略图设置选中样式

c0afc12f7dc4789c369dd383c62a6167.png

图6-切换商品图片

到这里,原型已经制作完毕,点击预览,在浏览器中查看原型。


关注头条号私信可获取源文件及Axure RP9安装包,本账号将不定期更新更多关于Axure RP9的原创教程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ref的mysql_ref:Mysql授权远程登陆

在Windows环境上操作。步骤如下:1. 打开cmd窗口,登陆mysqlmysql -uroot -p1234562.使用mysql数据库use mysql3.查看结果中host一行中是否有%,如果有%,此行用户名允许远程登录。下图所示,白色框中表示允许远程登录的账号&#xff1…

json格式校验并显示错误_使用postman做自动化接口校验

要想实现接口的自动化测试,需要以下几个步骤:自动登录首先点击postman左上角的new按钮,创建一个collection,在pre-request-scripts标签下,给整个collection创建一个公用规则编写登录脚本pre-request-scripts在请求发送…

powerbuilder提示不是下拉窗口_为什么过去状态管理不是问题?

2-tier 架构远古时期,状态是完全由数据库管理的。数据库提供的连接是有状态的,打开页面的时候开连接,页面上的改动直接提交到当前的数据库连接。数据库连接的状态就是页面状态。3-tier 架构后来因为互联网类型的应用的发展,数据库…

kali字典_kali黑客系统wpscan工具扫描wordpress漏洞入侵攻击测试教程

WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和WordPress本身的漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞,并…

mysql df_MySQL主从复制实战

什么是主从复制使用两个或两个以上的数据库,一部分数据库当做主数据库,而另一部分数据库当做从数据库。系统在主数据库中进行写操作,从数据库记录在主库上所有的写操作,使得主从数据库的数据保持一致。一旦主数据库出现问题时&…

python logistic回归_logistic回归介绍与源码分析

1. 介绍(由线性模型引出logistic回归)首先介绍一下什么是线性模型呢?线性模型的定义如下:给定 个属性描述的样本 , 代表样本在第 个属性上的取值。线性模型的目的是学习一个函数,它可以通过属性的线性组合来…

Activity、BroadcastReceiver、Service共同工作的简单例子

? Activity 好像是應用程式的眼睛,提供與User 互動之窗。 ? BroadcastReceiver 好像是耳朵,接收來自各方的Intent。 ? Service 好像是手,提供符合Intent 意圖之服務。 10.2.1 操作情境: 1. 此程式一開始,畫面出現兩…

线程执行一半断了_有的线程它死了,于是它变成一道面试题

----本文首发于公众号,关注文末公众号阅读体验更佳有些线程它活着,但它躺在池中碌碌无为;有的线程它死了,于是它变成一道面试题。这次的文章,要从一次阿里的面试说起。我记得那天是周一,刚刚经历过周末过的…

C#中的扩展方法,Linq,IO和多线程的定义和实例

前段时间学C#的上转型,泛型,lambda表达式这些应用的理解很费劲。学过之后我多多的练习了几天,接下来继续复习C#的其他一些概念,说实在的这些知识点学过之后很容易忘,但是都是很重要的,所以发表在博客上没事…

准确率 召回率_吴恩达深度学习笔记(61)-训练调参中的准确率和召回率

单一数字评估指标(Single number evaluation metric)无论你是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,你会发现,如果你有一个单实数评估指标,你的进展会快得多,它可以快…

探讨LoadRunner的并发用户和集合点

探讨LoadRunner的并发用户和集合点 近来跟踪一个项目,发现同事们在执行性能测试时,比较热衷于使用集合点,从概念上认为要得到并发用户就必须设置集合点,认为在执行一个压力测试脚本时,设置了集合点才算是有效的并发用…

spring gateway 鉴权_通过spring实现service变成controller,代码得到了简化

在网上发现了一个牛X的思路,在做restful的时候,如果业务改变,需要每次都修改controller,后来方便了,直接透传的方式,其实也比较麻烦,每次都要写controller。需求变了接口也发生了改变&#xff0…

java中return返回值_Java中return的用法

展开全部一、return语句总是用在方法中,有两个作用。一个是返回方法指定类型的值(这个值总62616964757a686964616fe59b9ee7ad9431333366306434是确定的)。一个是结束方法的执行(仅仅一个return语句)。二、实例1 。返回一个String。private String gets(){String s …

java 事件分发线程_深入浅出Java多线程(2)-Swing中的EDT(事件分发线程) [转载]...

本系列文章导航本文主要解决的问题是:如何使其Swing程序只能运行一个实例?抛开Swing, 我们的程序是通过java 命令行启动一个进程来执行的,该问题也就是说要保证这个进程的唯一性,当然如果能够访问系统的接口&#xff0…