HTML5 SVG、MathML、拖放
最佳答案 问答题库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 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!