【Axure教程】拖拉拽编辑页面

news2024/9/28 1:24:12

低代码开发平台通常提供拖拉拽编辑页面的功能,使用户无需编写大量代码即可创建复杂的应用程序和页面。这种平台的特点是通过图形用户界面来进行开发,用户可以拖拽组件到画布上进行布局和配置。

那今天作者就教大家在Axure里怎么制作拖拉拽动态编辑页面的原型模板,我们会以动态编辑可视化页面为案例,具体效果如下所示:

效果展示

  • 拖动左侧工具栏里的工具,可以在页面中添加对应的图表

  • 添加后的图表可以通过拖动的方式再次移动对应的位置

  • 多余的图片,可以通过鼠标移入后按键盘delete键删除

图片

【原型预览含下载地址】

https://axhub.im/ax9/dc85443709279699/#g=1&p=动态编辑可视化页面案例

制作教程

这个模板主要分成3部分内容,分别是左侧工具栏,页面展示区和添加弹窗

1、左侧工具栏

主要材料包括中继器、图片和文本标签,中继器里元件如下图所示摆放:

图片

我们要将中继器里的组合作为动态面板,因为只有动态面板才有拖动事件

中继器外如果想固定在指定位置,可以转为动态面板后固定在浏览器的指定位置,如果工具栏太长,也可以调出滚动条,通过双动态面板的方式隐藏滚动条。

中继器表格里共3列,pic列对应工具栏里的图标;pic1列是该图标对应的图表素材;text列对应工具栏的文字。

图片

我们导入对应素材和填写内容后,如果是Axure10,我们直接点击中继器表格里的连接,就可以选择将值设置到对应的元件,如果是Axure8、9,就要在中继器每项加载时,用设置文本和设置图片的交互,将值设置到文本标签和图片元件里

图片

2、页面展示区

页面展示区我们主要用到中继器和图片元件,将图片元件放在中继器内部,图片大小根据实际需要设置,需要将图片转为动态面板,因为后面需要二次拖动编辑。

图片

整个中继器转为动态面板,动态面板的范围就相当于页面展示区的范围,有需要的我们可以在载入时根据页面尺寸来设置大小。

中继器表格包括以下几列:pic列对应图表的内容,x和y列对应图表中心位置的横纵坐标值

图片

中继器每项加载时,用移动事件,将图片中心移动到x和y列对应的坐标中,这里要注意的是,因为在动态面板里,如果动态面板的位置在0.0,这个是不影响的,如果不是在0,0,就要减去对应的动态面板的x和y坐标值。举一个例子来说明:如果动态面板的x坐标值为100,图片元件在动态的坐标值为0,他在整个页面里的坐标值就应该是0+100=100。另外一点需要注意的是,因为中继器是一行行加载的,所以后面行的y值要减去前面行的高度。

然后用设置图片的交互,将pic列的值设置到图片元件里

图片

鼠标单击、移入、移动、停放在图片动态面板时,我们要选中图片,为后续的删除图片做准备,我们用标记行的事件标记当前行就可以了。但是,在标记之前,我们要先用取消标记的操作,取消之前的标记,这样可以确保标记是唯一的。

图片

在页面按键按下时,如果按下的是delete键,我们就用删除行的交互,删除已标记的行。

图片

鼠标移出图片动态面板时,我们用取消标记所有标记的交互,取消即可

图片

这样就实现了,鼠标在哪张图片上面,点击delete键就可以将他删除

鼠标拖动动态面板时,我们用移动的交互,选择跟随移动,在移动的过程中,可以能会被前面的内容遮挡,所以我们可以用置顶的交互,将他置顶。拖动结束时,我们要把图片动态面板元件中心点坐标更新回中继器表格里,因为如果不更新,下次添加或删除时,就会触发中继器每项加载时,重新读取中继器每一行的内容,这样之前移动的修改就会恢复原状,所以这里我么能要更新行的交互,将图片动态面板的中心坐标,保存到中继器表格当前行的x和y列里。

图片

这样我们就完成了拖动修改位置的效果了。

3、添加弹窗

添加弹窗就是一个默认隐藏的图片元件,因为从左侧工具栏拖动到页面展示区,中间是没有联系的,所以我们要用一个图片元件来过渡,这个图片元件的尺寸,要和页面展示区里中继器里的图片元件的尺寸一致。

在鼠标开始拖动工具栏中继器里的动态面板时,我们用设置图片的交互,将中继器里当前行的pic1列的图片值,设置到图片弹窗里,然后用显示的交互,显示图片弹窗,接着用移动事件,让他的中心点移动到鼠标指针的位置,这里我们可以用cursor.x和cursor.y函数动态获取鼠标指针的x和y坐标值。

图片

拖动时也是用移动事件,和上面的移动事件一样,这样图片弹窗就可以跟着鼠标移动了。

拖动结束的时候,我们需要进行条件判断,图片弹窗是否和页面展示区的位置有重叠,如果有接触重叠,就是要添加这个图片,我们就用添加行的交互,将工具栏当前行的pic列的图片值,添加到页面展示区的中继器里,对应的x和y坐标就是当前图片弹窗中心点所在的x和y坐标值;如果没有接触,就不需要增加。最后我们用隐藏的交互,将弹窗隐藏即可。

图片

这样我们就完成拖拉拽动态编辑页面原型模板了,后续使用也很方便,只需要在中继器表格里填写对应的信息导入对应的素材,预览后即可自动生成对应的效果。

那以上就是本期教程的全部内容,感兴趣的同学们可以动手试试哦,感谢您的阅读,我们下期见。

本文内容由微信公众号:Axure高保真原型 原创发布,未经许可,禁止转载和商用

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

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

相关文章

01 LVS负载均衡群集

1.1 LVS群集应用基础 群集的称呼来自于英文单词“Cluster",表示一群、一串的意思,用在服务器领域则表示大量服务器的集合体,以区分于单个服务器。 1.1.1 群集技术概述 LVS(Linux Virtual Server)是Linux虚拟服…

linux下的线程

概念理解 linux下没有线程的概念,只有轻量级进程的概念, 有接口:clone() 是clone()调用,在库中创建栈 源码解析 int clone(int (*fn)(void *), void *child_stack,int flags, void *arg, .../* pid_t *p…

【Spring】详细了解静态代理和动态代理的使用

目录 1.代理模式介绍 2. 静态代理 3.动态代理 3.1 JDK动态代理 3.2 CGLIB动态代理 4. 动态代理和静态代理的区别 1.代理模式介绍 代理模式分为动态代理和静态代理,目的是在不直接暴露真实对象的情况下,通过代理对象来间接访问真实对象,从…

【设计模式】设计模式之观察者模式

文章目录 观察者模式什么是观察者模式引入组成UML图代码实现1. 定义观察者接口2. 定义主题接口3. 实现具体观察者4. 实现具体被观察者5.测试 应用场景优点缺点 观察者模式 什么是观察者模式 观察者模式(Observer Pattern)是一种设计模式 它定义了一种…

vLLMcuda安装笔记

1. 引言 最近在部署Qwen模型时,文档上有提到强烈建议用vLLM来部署模型,按照公开的性能测试数据,用vLLM部署Qwen模型的文本推理速度要比transformers部署快3~4倍。带着这个好奇就开始安装尝试,但试下来这个安装过程并没有那么顺利…

最新个人免签约支付系统源码|PHP源码 | 码支付系统 | ThinkPHP6框架 | 开源

源码介绍: 这个最新的个人专用免签约支付系统源码!是PHP源码写的哦,而且是用ThinkPHP6框架开发的,完全开源的码支付系统。 这个系统适合个人用户使用,作为收款的免签约解决方案。它还加入了监控端,可以拒…

Linux 调试追踪: trace-cmd 和 kernelshark

文章目录 1. 前言2. 概述3. trace-cmd3.1 下载3.2 交叉编译3.3 安装、运行3.3.1 trace-cmd 示范:抓取系统调度信息 4. kernelshark5. 参考资料 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承…

Java多线程-----定时器(Timer)及其实现

目录 一.定时器简介: 二.定时器的构造方法与常见方法: 三.定时器的模拟实现: 思路分析: 代码实现: 在开发中,我们经常需要一些周期性的操作,例如每隔几分钟就进行某一项操作,这…

【QT】常用控件-上

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 目录 👉🏻QWidgetenabledgeometryrect制作上下左右按钮 window frame 的影响window titlewindowIcon代码示例: 通过 qrc 管理图片作为图标 windowOpacitycursor使用qrc自…

Python | Leetcode Python题解之第309题买卖股票的最佳时机含冷冻期

题目: 题解: class Solution:def maxProfit(self, prices: List[int]) -> int:if not prices:return 0n len(prices)f0, f1, f2 -prices[0], 0, 0for i in range(1, n):newf0 max(f0, f2 - prices[i])newf1 f0 prices[i]newf2 max(f1, f2)f0, …

【笔记】《冲击弹性波理论与应用》[2-2] 振动信号分析

1.前级硬件滤波 - 降噪 2.软件降噪 2.1 移动平滑滤波 2.1.1 移动平滑滤波的效果 2.2 经验模态分解法 2.1.1 效果 3 信号分析 除了FFT,最大熵和小波变换现在也很流行。 3.1 最大熵 3.1.1 与FFT的比对 3.2 相关性分析 3.2.1 自相关 3.2.2 互相关 3.3. 小波 非等周期信号 3…

《python语言程序设计》2018第6章第28题 掷骰子 两个色子,分别是1到6

2、3、12 玩家输 7、11玩家赢 4、5、6、8、9、10算1点&#xff0c;之后出7玩家输或者和上一次相同。def rolled(num_t):count 0still_win 0second_win 0still_lose 0second_lose 0while count < num_t:a_1 random.randint(1, 6)b_1 random.randint(1, 6)tTen a_1 b…

力扣-41.缺失的第一个正数

刷力扣热题–第二十五天:41.缺失的第一个正数 新手第二十五天 奋战敲代码&#xff0c;持之以恒&#xff0c;见证成长 1.题目简介 2.题目解答 做这道题有点投机取巧的感觉&#xff0c;要求时间复杂度O(N),且空间复杂度O(1)&#xff0c;那么就是尽可能的去找到更多的可能性&…

C语言程序设计之数组1

程序设计之数组1 问题1_1代码1_1结果1_1 问题1_2代码1_2结果1_2 问题1_3代码1_3结果1_3 问题1_4代码1_4结果1_4 问题1_5代码1_5结果1_5 问题1_1 函数 f u n fun fun 的功能是&#xff1a;移动一位数组中的内容&#xff0c;若数组中有 n n n 个整数&#xff0c;要求把下标从 …

软件测试生命周期、BUG描述与处理策略

软件测试的生命周期 需求分析&#xff1a;需求是否完整、是否正确 测试计划&#xff1a;确定由谁测试、测试的起止时间、设计哪些模块 测试设计、测试开发&#xff1a;写测试用例&#xff08;手工、自动化测试用例&#xff09;、编写测试工具 执行测试用例 测试评估&…

衢州骨伤科医院为98岁高龄老人做髋关节置换,患者第三天便下地行走

灵活迈步、周身整洁、双手提着两口袋鸡蛋......在清晨的菜市场里&#xff0c;王阿婆&#xff08;化名&#xff09;在人群里穿梭&#xff0c;买一些自己和女儿想吃的菜。如果没有看到她的脸&#xff0c;大家都以为她只有 60 多岁&#xff1b;再定睛一看&#xff0c;她虽然脸上布…

Token的原理及区别,以及与Cookie,Session之间的区别?

Token&#xff0c;特别是JSON Web Token&#xff08;JWT&#xff09;&#xff0c;也是一种用于管理用户状态和身份的机制&#xff0c;但它与Cookie和Session的工作方式有所不同。下面将详细解释Token如何管理用户状态和身份。 Token的工作原理 Token是一种无状态的认证机制&am…

QQ邮箱 + Kafka + Redis + Thymeleaf 模板引擎实现简单的用户注册认证

1. 前提条件 1.1 Redis 1.1.1 拉取 Redis 镜像 docker pull redis:latest 1.1.2 启动 Redis 容器 docker run --name my-redis -d -p 6379:6379 redis:latest1.2 Kafka 1.2.1 docker-compose.yml version: 3.8 services:zookeeper:image: "zookeeper:latest"h…

【C++入门(上)】—— 我与C++的不解之缘(一)

前言&#xff1a; 学完C语言和初阶数据结构&#xff0c;感觉自己又行了&#xff1f; 接下来进入C的学习&#xff0c;准备好接受头脑风暴吧。 一、第一个C程序 C 的第一个程序&#xff0c;梦回出学C语言&#xff0c;第一次使用C语言写代码&#xff1b;这里使用C写第一个C代码。 …

微信文件如何直接打印及打印功能在哪里设置?

在数字化时代&#xff0c;打印需求依旧不可或缺&#xff0c;但传统打印店的高昂价格和不便操作常常让人头疼。幸运的是&#xff0c;琢贝打印作为一款集便捷、经济、高效于一体的网上打印平台&#xff0c;正逐渐成为众多用户的首选。特别是通过微信小程序下单&#xff0c;更是让…