初学HTML5
来源:互联网 发布:java swing组件 编辑:程序博客网 时间:2024/05/08 02:07
今天上W3C开始看HTML5。(有些内容摘自W3C)
首先是一段实现拖放的代码:
<!DOCTYPE HTML><html><head><script type="text/javascript">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></head><body><div id="div1" ondrop="drop(event)"ondragover="allowDrop(event)"></div><img id="drag1" src="img_logo.gif" draggable="true"ondragstart="drag(event)" width="336" height="69" /></body></html>
开头是固定格式,并定义了3个function,分别是 allowDrop,drag和drop。
dataTransfer.setData() 方法设置被拖数据的数据类型和值:
function drag(ev){ev.dataTransfer.setData("Text",ev.target.id);}
阻止drop的默认处理方式。
event.preventDefault()
在这个例子中,数据类型是 "Text",值是可拖动元素的 id ("drag1")。
drop(event):
function drop(ev){ev.preventDefault();var data=ev.dataTransfer.getData("Text");ev.target.appendChild(document.getElementById(data));}
代码解释:
- 调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开)
- 通过 dataTransfer.getData("Text") 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。
- 被拖数据是被拖元素的 id ("drag1")
- 把被拖元素追加到放置元素(目标元素)中
在body部分:
进行放置 - ondrop
当放置被拖数据时,会发生 drop 事件。
<img draggable="true" />为了使元素可拖动,把 draggable 属性设置为 true 。
ondragstart 属性调用了一个函数,drag(event),它规定了被拖动的数据。
ondragover 事件规定在何处放置被拖动的数据。
默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。
如果要在两个框实现来回拖放,只要将body部分改成如下:
<body><div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"> <img src="/i/w3school_logo_black.gif" draggable="true" ondragstart="drag(event)" id="drag1" /></div><div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div></body>
(代码实现鼠标放在框内能显示坐标)
具体代码:
<!DOCTYPE HTML><html><head><style type="text/css"> body{font-size:70%;font-family:verdana,helvetica,arial,sans-serif;}</style><script type="text/javascript"> function cnvs_getCoordinates(e){x=e.clientX;y=e.clientY;document.getElementById("xycoordinates").innerHTML="Coordinates: (" + x + "," + y + ")";} function cnvs_clearCoordinates(){document.getElementById("xycoordinates").innerHTML="";}</script></head><body style="margin:0px;"><p>把鼠标悬停在下面的矩形上可以看到坐标:</p><div id="coordiv" style="float:left;width:199px;height:99px;border:1px solid #c3c3c3" onmousemove="cnvs_getCoordinates(event)" onmouseout="cnvs_clearCoordinates()"></div><br /><br /><br /><div id="xycoordinates"></div> </body></html>
function cnvs_getCoordinates(e){x=e.clientX;y=e.clientY;document.getElementById("xycoordinates").innerHTML="Coordinates: (" + x + "," + y + ")";}得到坐标,x,y分别为坐标。
function cnvs_clearCoordinates(){document.getElementById("xycoordinates").innerHTML="";}清除坐标。
body部分:
onmousemove="cnvs_getCoordinates(event)" onmouseout="cnvs_clearCoordinates()"不断随着鼠标移动得到和更新x,y值。
<div id="xycoordinates"></div>显示坐标值。
创建canvas和js部分:
创建 Canvas 元素
向 HTML5 页面添加 canvas 元素。
规定元素的 id、宽度和高度:
<canvas id="myCanvas" width="200" height="100"></canvas>
通过 JavaScript 来绘制
canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:
<script type="text/javascript">var c=document.getElementById("myCanvas");var cxt=c.getContext("2d");cxt.fillStyle="#FF0000";cxt.fillRect(0,0,150,75);</script>
JavaScript 使用 id 来寻找 canvas 元素:
var c=document.getElementById("myCanvas");
然后,创建 context 对象:
var cxt=c.getContext("2d");
getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
下面的两行代码绘制一个红色的矩形:
cxt.fillStyle="#FF0000";cxt.fillRect(0,0,150,75);
fillStyle 方法将其染成红色,fillRect 方法规定了形状、位置和尺寸。
理解坐标
上面的 fillRect 方法拥有参数 (0,0,150,75)。
意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。
如下图所示,画布的 X 和 Y 坐标用于在画布上对绘画进行定位。
- 初学html5
- 初学HTML5
- 初学html5
- html5初学
- 初学HTML5
- html5初学
- html5初学
- HTML5初学
- 初学html5
- html5初学笔记
- Html5初学____(1)
- 初学HTML5---页面结构
- 初学cocos2d html5
- HTML5初学第一天
- 初学Html5的总结
- [H5]HTML5之初学
- html5初学day1
- html5初学day2【作业】
- Edittext Ime action
- 函数相关参数 log_bin_trust_function_creators
- SAE部署Python-让云端自动运行Python代码
- 死锁的原因及处理方法
- (2.3.10)理解JAVA数组
- 初学HTML5
- Path Sum
- Web工作方式
- 零基础学python-13.2 手动迭代:iter和next
- 设计模式C++实现2—策略模式
- Java操作MongoDB0
- iOS开发脚踏实地学习day05-大图滚动和定时器
- MySql常用维护命令1
- Project0(Get familiar with Linux) (Part 1)