当前位置: 首页 > news >正文

Oracle APEX 利用卡片实现翻转

目录

0. 以 Oracle 的标准示例表 EMP 为例,实现卡片翻转

1. 创建PL/SQL动态内容区域

2. 添加 CSS 实现翻转效果

3. 添加动态操作 (Dynamic Action)

4. 看效果


0. 以 Oracle 的标准示例表 EMP 为例,实现卡片翻转

  • 正面: 显示员工姓名 (ENAME) 和职位 (JOB)。
  • 背面: 显示员工编号 (EMPNO)、薪水 (SAL) 和佣金 (COMM)。

1. 创建PL/SQL动态内容区域

在页面上添加一个新区域,类型设置为 PL/SQL 动态内容 (PL/SQL Dynamic Content)。
将以下代码粘贴到区域的 源 (Source) > PL/SQL 代码 中。

DECLARE-- 定义卡片HTML模板,使用 #占位符#l_html_template VARCHAR2(4000) := q'!<div class="flip-card"><div class="flip-card-inner"><div class="flip-card-front"><span class="fa fa-user fa-5x u-color-4"></span><h4 style="margin-top: 20px;"><b>#ENAME#</b></h4><p>#JOB#</p></div><div class="flip-card-back"><h1>#ENAME#</h1><hr><p><b>Employee No:</b> #EMPNO#</p><p><b>Salary:</b> #SAL#</p><p><b>Commission:</b> #COMM#</p></div></div></div>!';l_final_html CLOB;
BEGIN-- 从 EMP 表查询数据并为每个员工生成一个卡片HTMLFOR rec IN (SELECT ENAME, JOB, EMPNO, SAL, COMM FROM EMP) LOOPl_final_html := l_final_html ||REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(l_html_template, '#ENAME#', apex_escape.html(rec.ENAME)),'#JOB#', apex_escape.html(rec.JOB)),'#EMPNO#', apex_escape.html(rec.EMPNO)),'#SAL#', apex_escape.html(rec.SAL)),'#COMM#', apex_escape.html(NVL(rec.COMM, 0)) -- 如果COMM为空则显示0);END LOOP;-- 输出最终的HTML-- htp.p(l_final_html);return l_final_html;
END;

2. 添加 CSS 实现翻转效果

在页面的属性编辑器中,找到 CSS > 内联 (Inline) 部分。
添加以下 CSS 代码。
CSS 代码示例:

/* 卡片容器,需要3D效果的视角 */
.flip-card {background-color: transparent;width: 220px;height: 280px;perspective: 1000px; /* 3D效果的关键 */margin: 10px;float: left; /* 让卡片并排显示 */font-family: Arial, sans-serif;
}/* 内层容器,用于实现翻转动画 */
.flip-card-inner {position: relative;width: 100%;height: 100%;text-align: center;transition: transform 0.8s;transform-style: preserve-3d;box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);border-radius: 10px;
}/* 当卡片被点击时,通过JS添加 .is-flipped 类来触发翻转 */
.flip-card.is-flipped .flip-card-inner {transform: rotateY(180deg);
}/* 卡片的正面和背面样式 */
.flip-card-front, .flip-card-back {position: absolute;width: 100%;height: 100%;-webkit-backface-visibility: hidden; /* Safari */backface-visibility: hidden;border-radius: 10px;padding: 20px;box-sizing: border-box; /* 确保内边距不会撑大盒子 */
}/* 正面样式 */
.flip-card-front {background-color: #f8f9fa;color: black;display: flex;flex-direction: column;justify-content: center;align-items: center;
}/* 背面样式 (初始时是翻转180度的) */
.flip-card-back {background-color: #007bff;color: white;transform: rotateY(180deg);padding-top: 30px;
}
.flip-card-back h1 {font-size: 1.5em;margin-bottom: 10px;
}
.flip-card-back p {font-size: 1em;
}

3. 添加动态操作 (Dynamic Action)

右键单击您创建的 PL/SQL 区域,选择 创建动态操作 (Create Dynamic Action)。
事件 (Event): 点击 (Click)
选择类型 (Selection Type): jQuery 选择器 (jQuery Selector)
jQuery 选择器 (jQuery Selector): .flip-card
在 真 (True) 操作下,创建 执行 JavaScript 代码 (Execute JavaScript Code) 操作。
在 代码 (Code) 中输入: $(this.triggeringElement).toggleClass('is-flipped');

4. 看效果

点击后实现翻转↓


文章转载自:

http://Gp0jVyz3.nLgLm.cn
http://U9orcJFm.nLgLm.cn
http://xqVIm1CL.nLgLm.cn
http://MDoqUpd6.nLgLm.cn
http://NLCKagCd.nLgLm.cn
http://BT5xPcHI.nLgLm.cn
http://SM6v18kp.nLgLm.cn
http://izKKxOgv.nLgLm.cn
http://wX0984EC.nLgLm.cn
http://n30QpgAD.nLgLm.cn
http://wmDGevpo.nLgLm.cn
http://ODXExGbQ.nLgLm.cn
http://iYSFMiY2.nLgLm.cn
http://H3s7Kmkq.nLgLm.cn
http://HS8DJ7kq.nLgLm.cn
http://LGpTYD86.nLgLm.cn
http://u0awfhDK.nLgLm.cn
http://k2gUMIQD.nLgLm.cn
http://De1udaXn.nLgLm.cn
http://glz4KHKm.nLgLm.cn
http://ITlSHUzK.nLgLm.cn
http://1bCcV8y6.nLgLm.cn
http://Z2Nar2qL.nLgLm.cn
http://Ddl0dnwJ.nLgLm.cn
http://huRPq2S9.nLgLm.cn
http://ufCeTfDv.nLgLm.cn
http://cztFMO9L.nLgLm.cn
http://iHIopsRC.nLgLm.cn
http://zmOsyAof.nLgLm.cn
http://c7ewoXXu.nLgLm.cn
http://www.dtcms.com/a/373218.html

相关文章:

  • Spring Security AuthenticationManager 接口详解与实战
  • 人机协同的智慧共生平台:跨学科知识中心暨融智中心,从认知到实践的闭环自动转化
  • AG32 ( MCU+FPGA二合一 )是如何卷入了三相电能计量市场的
  • 2025年- H119-Lc88. 合并两个有序数组(数组)--Java版
  • 树莓派 Ubuntu 24.04 开机换源总结
  • 简单的 k8s 部署分布式Go微服务集群实例
  • 旅行社旅游管理系统的设计与实现(代码+数据库+LW)
  • Three.js shader内置矩阵注入
  • 在公用同一公网IP和端口的K8S环境中,不同域名实现不同访问需求的解决方案
  • 【MFC视图和窗口基础:文档/视图的“双胞胎”魔法 + 单文档程序】
  • Cocos creator3.x 处理 16KB 问题
  • 【MFC文档与视图结构:数据“仓库”与“橱窗”的梦幻联动 + 初始化“黑箱”大揭秘!】
  • 【MFC】对话框属性:Use System Font(使用系统字体)
  • springboot3.3.5 集成elasticsearch8.12.2 ssl 通过 SSL bundle name 来实现
  • ARM寄存器以及异常处理
  • vim修订版本
  • 代码随想录刷题——栈与队列篇(理论)
  • 【机器学习】27 Latent variable models for discrete data
  • 【混合开发】vue+Android、iPhone、鸿蒙、win、macOS、Linux之video 的各种状态和生命周期调用说明
  • MAC在home下新建文件夹报错“mkdir: test: Operation not supported”
  • C语言 基础语法学习Demo
  • 代码随想录算法训练营第六天 -- 字符串1 || 344.反转字符串I / 541.反转字符串II / kamacoder54.替换数字--第八期模拟笔试
  • 设计模式:访问者模式(Visitor Pattern)
  • 【C++】强制类型转换
  • LSAGNet:用于图像超分辨率的轻量级自注意力引导网络
  • Rust在医疗系统中的应用:安全、性能与合规性实践(下)
  • 房屋安全鉴定机构服务内容
  • 【系统分析师】第16章-关键技术:系统运行与维护(核心总结)
  • 【Spring】原理解析:Bean的作用域与生命周期
  • GitLab 分支管理与 Push 问题全解析