1. e-works数字化企业网
  2. 书屋
  3. 书籍列表
  4. HTML5 Canvas核心技术—图形、动画与游戏开发
  5. 在Canvas中使用HTML元素

第一章 基础知识

第八节 在Canvas中使用HTML元素


    尽管我们可以说Canvas是HTML5之中最棒的功能,不过在实现网络应用程序时,很少会单独使用它。在绝大多数情况下,你都会将一个或更多的canvas元素与其他HTML控件结合起来使用,以便让用户可以通过输入数值或其他方式来控制应用程序。

    要将其他HTML控件与canvas结合起来使用,首先想到的办法可能是将控件嵌入到canvas元素之中。不过这么做不行,因为任何放入canvas元素主体部分的东西,只有在浏览器不支持canvas元素时,才会被显示出来。

    浏览器要么显示canvas元素,要么显示放在元素之中的HTML控件,它不会将两者同时显示出来。所以,必须将控件放在canvas元素之外。

    为了让HTML控件看上去好像是出现在canvas范围内,可以使用CSS将这些控件放置在canvas之上。图1-16中的应用程序演示了这个效果。

 显示在canvas之上的HTML元素

图1-16 显示在canvas之上的HTML元素

    图1-16之中的应用程序显示了100个运动的小球,并且提供了一个用于启动或停止动画效果的链接。这个存在于DIV元素之中的链接是半透明的,并且浮动在canvas之上。我们将这种DIV叫做“玻璃窗格”(glass pane),因为它看起来像是一个浮动在canvas元素之上的玻璃板。

    程序清单1-8列出了图1-16之中这个应用程序的HTML代码。

    程序清单1-8 用于在canvas之中显示HTML控件的HTML代码

<!DOCTYPE html>

<html>

   <head>

      <title>Bouncing Balls</title>

      <style>

         body {

            background: #dddddd;

         }

         #canvas {

            margin-left: 10px;

            margin-top: 10px;

            background: #ffffff;

            border: thin solid #aaaaaa;

         }

          #glasspane {

            position: absolute;

            left: 50px;

            top: 50px;

            padding: 0px 20px 10px 10px;

            background: rgba(0, 0, 0, 0.3);

            border: thin solid rgba(0, 0, 0, 0.6);

            color: #eeeeee;

            font-family: Droid Sans, Arial,Helvetica, sans-serif;

            font-size: 12px;

            cursor: pointer;

            -webkit-box-shadow: rgba(0,0,0,0.5) 5px 5px 20px;

            -moz-box-shadow: rgba(0,0,0,0.5) 5px 5px 20px;

            box-shadow: rgba(0,0,0,0.5) 5px 5px 20px;

         }

         #glasspane h2 {

            font-weight: normal;

         }

         #glasspane .title {

            font-size: 2em;

            color: rgba(255, 255, 0, 0.8);

         }

         #glasspane a:hover {

            color: yellow;

         }

         #glasspane a {

            text-decoration: none;

            color: #cccccc;

            font-size: 3.5em;

         }

系列微信

数字化企业网
PLM之神
e-works制信科技
MES百科
工业自动化洞察
智能制造IM
AI智造圈
智能工厂前线
工业机器人洞察
智造人才圈
工业软件应用
智能制造网博会
ERP之家
供应链指南针
© 2002-2025  武汉制信科技有限公司  版权所有  ICP经营许可证:鄂B2-20030029-1(于2003年首获许可证:鄂B2-20030029)
鄂公网安备:420100003343号 法律声明及隐私权政策     投诉举报电话:027-87592219

关于我们    |    联系我们    |    隐私条款

ICP经营许可证:鄂B2-20080078
(于2003年首获许可证:鄂B2-20030029)
鄂公网安备:420100003343号
© 2002-2025  武汉制信科技有限公司  版权所有
投诉举报电话:027-87592219

扫码查看