(第二天)HTML5新增元素、属性(下)及Range对象(上)

html-css06

(第二天)HTML5新增元素、属性(下)及Range对象(上),第1张

<figure>

<figcaption>这是一群美女</figcaption>

<img src="1.jpg" alt="" width="50">

<img src="2.jpg" alt="" width="50">

<img src="3.jpg" alt="" width="50">

</figure>

<body>

<script>

function AD() {

// var txt = document.getElementById("txt")

// 上方方法与下方方法结果相同,只是不同获取input节点的方法。

var txt = document.forms[0]['txtName']

var userAction = txt.selectionDirection

alert(userAction)

}

</script>

<form>

<input type="text" id="txt" name="txtName">

<input type="button" value="获取用户选择文字方向" onclick="AD()">

</form>

</body>

<body>

<script>

function deleteContents(mode) {

// 创建一个Range对象

var rangeObj = document.createRange()

var demoArea = document.getElementById("demo")

if (mode) { / 如果为true,表示删除整个元素 /

// 选取整个Node

rangeObj.selectNode(demoArea)

rangeObj.deleteContents()

} else { / 如果为false,表示仅删除元素中的内容 /

// 选择Node中的Contents

rangeObj.selectNodeContents(demoArea)

rangeObj.deleteContents()

}

}

</script>

<div id="demo" style="background-color: #f00width: 300pxheight: 300px">这是一个Range方法DEMO</div>

<button onclick="deleteContents(true)">删除整个元素</button>

<button onclick="deleteContents(false)">仅删除元素中的内容</button>

</body>

在canvas中显示图片非常简单。可以通过修正层为图片添加印章、拉伸图片或者修改图片等,并且图片通常会成为canvas上的焦点。用HTML5 Canvas API内置的几个简单命令可以轻松地为canvas添加图片内容。

不过,图片增加了canvas操作的复杂度:必须等到图片完全加载后才能对其进行操作。浏览器通常会在页面脚本执行的同时异步加载图片。如果试图在图片未完全加载之前就将其呈现到canvas上,那么canvas将不会显示任何图片。因此,开发人员要特别注意,在呈现之前,应确保图片已经加载完毕。

为保证在呈现之前图片已完全加载,我们提供了回调,即仅当图像加载完成时才执行后续代码,如代码清单如下所示。

?

<script type="text/javascript">

function drawBeauty(beauty){

var mycv = document.getElementById("cv")

var myctx = mycv.getContext("2d")

myctx.drawImage(beauty, 0, 0)

}

function load(){

var beauty = new Image()

beauty.src = "http://images.cnblogs.com/cnblogs_com/html5test/359114/r_test.jpg"

if(beauty.complete){

drawBeauty(beauty)

}else{

beauty.onload = function(){

drawBeauty(beauty)

}

beauty.onerror = function(){

window.alert('美女加载失败,请重试')

}

}

}//load

if (document.all) {

window.attachEvent('onload', load)

}else {

window.addEventListener('load', load, false)

}

</script>

基本绘画

在最基本的画图操作中,你需要的只是希望图像出现处的位置(x和y坐标)。图像的位置是相对于其左上角来判断的。使用这种方法,图像可以简单的以其原尺寸被画在画布上。

drawImage(image, x, y)

var canvas = document.getElementById(‘myCanvas’)

var ctx = canvas.getContext(’2d’)ctx.drawImage(myImage, 50, 50)

ctx.drawImage(myImage, 125, 125)

ctx.drawImage(myImage, 210, 210)

缩放及调整尺寸

改变图像的尺寸,你需要使用重载的drawImage函数,提供给它希望的宽度和高度参数。

drawImage(image, x, y, width, height)

var canvas = document.getElementById(‘myCanvas’)

var ctx = canvas.getContext(’2d’)ctx.drawImage(myImage, 50, 50, 100, 100)

ctx.drawImage(myImage, 125, 125, 200, 50)

ctx.drawImage(myImage, 210, 210, 500, 500)

图像裁剪

最后一个drawImage方法的功用是对图像进行裁剪。

drawImage(image,

sourceX,

sourceY,

sourceWidth,

sourceHeight,

destX,

destY,

destWidth,

destHeight)

参数很多,但基本上你可以把它想成从原图中取出一个矩形区域,然后把它画到画布上目标区域里。

HTML5非常强大,尤其是和CSS3结合,有时候能达到非同凡响的网页动画效果。今天要分享的这款HTML5应用就是一款很酷的3D立体图片相册应用,它可以用鼠标多拽从多个角度浏览相册图片,点击图片,就可以放大图片,相册图片都是美女,千万别让女朋友看到。