当前位置:首页 > 编程笔记 > 正文
已解决

HTML5 SVG、MathML、拖放

来自网友在路上 144844提问 提问时间:2023-11-05 09:23:36阅读次数: 44

最佳答案 问答题库448位专家为你答疑解惑

  • HTML5 <svg>:

HTML5<svg> 元素是 SVG 图形的容器SVG 指可伸缩矢量图形 (Scalable Vector Graphics),用于定义网络的基本矢量的图形。SVG使用XML格式定义图形。SVG图像在放大或者改变尺寸的情况下其图形质量不会有损失。与其他图像格式(JPEG、GIF)相比,SVG的优势在于:

 SVG 图像可通过文本编辑器来创建和修改;

 SVG 图像可被搜索、索引、脚本化或压缩

 SVG 是可伸缩的

 SVG 图像可在任何的分辨率下被高质量地打印

 SVG 可在图像质量不下降的情况下被放大

SVG与Canvas的区别:SVG 是一种使用 XML 描述 2D 图形的语言Canvas 通过 JavaScript 来绘制 2D 图形SVG 基于 XML,SVG DOM 中的每个元素都是可用的可以为某个元素附加 JavaScript 事件处理器。在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形Canvas 是逐像素进行渲染的。在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

Canvas

SVG

 依赖分辨率

 不支持事件处理器

 弱的文本渲染能力

 能够以 .png 或 .jpg 格式保存结果图像

最适合图像密集型的游戏,

其中的许多对象会被频繁重绘

不依赖分辨率

支持事件处理器

最适合带有大型渲染区域的应用程序

(比如谷歌地图)

复杂度高会减慢渲染速度

(任何过度使用 DOM 的应用都不快)

不适合游戏应用

  • HTML5 MathML:

HTML5可以在文档中使用MathML元素,对应的标签是<math>。MathML是数学标记语言,是一种基于XML(标准通用标记语言的子集)的标准,用来在互联网上数学数学符号和公式的置标语言。简单的MathML实例如下:

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <title>www.example.com)</title>
   </head> 
   <body>       
      <math xmlns="http://www.w3.org/1998/Math/MathML">
               
         <mrow>
            <msup><mi>a</mi><mn>2</mn></msup>
            <mo>+</mo>                               
            <msup><mi>b</mi><mn>2</mn></msup>
            <mo>=</mo>                               
            <msup><mi>c</mi><mn>2</mn></msup>
         </mrow>                       
      </math>               
   </body>
</html>

  • HTML5拖放:

拖放(drag和drop)是HTML5标准的组成部分,拖放是一种常见的特性,即抓取对象以后拖到另一个位置。任何元素都能够拖放。为了使元素可拖动,首先把 draggable 属性设置为 true :<img draggable="true">,然后规定当元素被拖动时,会发生什么:drag(event),然后放到何处-ondragover(规定在何处放置被拖动的数据),最后,进行放置-ondrop。拖动实例:

<script>

function allowDrop(ev){ ev.preventDefault(); }

function drag(ev)

{

ev.dataTransfer.setData("Text",ev.target.id);

 }

function drop(ev)

{

ev.preventDefault();

 var data=ev.dataTransfer.getData("Text");

ev.target.appendChild(document.getElementById(data));

 }

</script>

<div id="div1" οndrοp="drop(event)" οndragοver="allowDrop(event)"></div>

<br>

<img decoding="async" loading="lazy" id="drag1" src="/images/logo.png" draggable="true" οndragstart="drag(event)" width="336" height="69">

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"HTML5 SVG、MathML、拖放":http://eshow365.cn/6-32596-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!