Axure 10 案例:模拟鼠标拖拽画框线的效果

2023-02-25 18:11:25 来源:哔哩哔哩

打印 放大 缩小

介绍

鼠标拖拽画框线是我们常用的操作。可以通过Axure来完美的模拟鼠标拖拽画框线的效果,当接触到了其他控件的时候,可以通过交互来表示接触状态。


(相关资料图)

今天,就让我们来学习如何制作它。

预览效果

制作思路

1.下面就让我们来制作它。先整理下思路。由于网页的交互不支持拖拽的交互事件,所以,我们要添加一个空白的矩形来当作拖拽的画布。在它基础上添加交互事件。

2.拖拽的框线可以通过一个大小和位置不断变化的矩形来模拟。

3.拖拽时,我们需要记录鼠标在拖拽开始时的X和Y值,然后通过它来计算拖拽的距离。我们可以通过两个矩形的文本值来分别的记录它。

4.拖拽时,我们还需要记录是向哪个方向拖拽的,因为不同方向,框线的大小和位置的计算方式。是不同的。我们可以将其看做有四个象限的坐标轴。以鼠标结束点判断是在哪个象限。

制作内容

然后让我们来制作它。

首先,拖入一个空白矩形作为画布,然后将其锁定,以免误操作。

然后拖入一个矩形作为拖拽时框线,改变其样式,命名为框线。将其隐藏。

然后拖入六个矩形,用于记录值,分别命名为X,Y,1象限,2象限,3象限,4象限。

给四个象限设置一个选项组和选中样式,因为每次只能有1个象限被选中。

然后再拖入一个矩形,命名为可选中的矩形,给它设置错误样式,我们用错误样式来表示框线接触它时的交互

制作交互

元件制作完成后,我们来设置交互。

画布鼠标按下时交互

画布鼠标按下时,我们需要这样设置

1.首先显示框线,并将其置顶,然后将框线尺寸设置到最小(1,1),移动框线到鼠标所在的位置[[Cursor.x,Cursor.y]],然后设置文本,记录鼠标的初始位置[[Cursor.x,Cursor.y]]到X,和Y中。

画布鼠标经过时交互

然后设置鼠标经过时,也就是拖拽时的交互。

我们需要确定鼠标拖拽时,是在哪个象限。这就需要计算鼠标拖拽时位置和鼠标最初按下时的位置,由X坐标和Y坐标的差值是正还是负,来确定是在那个象限。

如上图所示,临时变量代表保存的X和Y值,如果[[Cursor.x]]值和X保存的值的差值小于0,且[[Cursor.y]]值和Y保存的值的差值小于0,则是第一象限。选中1象限的元件。以此类推。其他的条件和操作也这样设置。

然后,我们需要设置象限选中时的交互。我们需要将框线的大小重置为(1,1),位置重置为X,Y保存的值,这是为了在象限改变时,框线不会发生位置和尺寸的错误。

回到画布的交互,我们需要继续设置鼠标经过时的交互。

如果象限1选中时,设置框线的尺寸宽度为[[Math.abs(Cursor.x-LVAR1.text)]],也就是鼠标x值和X保存的文本差值的绝对值,设置框线的尺寸高度为[[Math.abs(Cursor.y-LVAR1.text)]],也就是鼠标y值和Y保存的文本差值的绝对值。同时将锚点设为右下角。

如果象限2选中时,复制1象限的交互。同时将锚点设为左下角。

如果象限3选中时,复制1象限的交互。同时将锚点设为左上角。

如果象限4选中时,复制1象限的交互。同时将锚点设为右上角。

鼠标松开时交互

然后我们设置鼠标松开时的交互。这里需要设定可选中矩形的错误状态

鼠标松开时,将可选中的矩形的错误状态设置为false,然后隐藏框线。

然后我们还需要设置框线的交互。

当鼠标松开时,需要设置隐藏当前元件,这是因为拖拽时,如果鼠标接触了本元件,则需要隐藏它自身。

尺寸改变时,需要添加条件,如果框线区域经过了可选中的矩形,则设置可选中的矩形的错误状态为true

如果框线区域未经过可选中的矩形,则设置可选中的矩形的错误状态为false。

最后,将鼠标经过事件复制到可选中的矩形和框线上,以设置在拖动时,框线触及它们时的交互。

预览原型

设置完成后,将所有记录坐标和象限选中状态的矩形隐藏。

预览原型,可以自由拖拽框线,并且框线接触到了可选中的矩形时,显示蓝色的边框,如果未接触到可选中的矩形时,隐藏蓝色的边框。

责任编辑:ERM523

相关阅读