本文主要是介绍HTML5 SVG、MathML、拖放,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 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">
这篇关于HTML5 SVG、MathML、拖放的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!