HTML5学习笔记

可以使用下面的方法来添加新的HTML元素:

JavaScript 语句 document.createElement("myHero") 是为 IE 浏览器添加新的元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <script>
        document.createElement("myhero");
    </script>
    <style>
        myhero{
            background: red;
            display:block;
            width:500px;
            height:100px;
        }
    </style>
</head>
<body>
<myhero>爱你不是两三天</myhero>
</body>
</html>
View Code

画布元素canvas:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>画布canvas</title>

</head>
<body>
<canvas id="mycanvas" width=='300' height="300" style="border:1px solid #d3d3d3;">afasdfasd</canvas>
<!--画布的脚本要写在标签的后面,否则会出现getContext()没有定义的错误-->
<script>
    var can = document.getElementById("mycanvas");
    var ct = can.getContext("2d");
    //属性:
    //这里需要注意的一点是:有关阴影部分的内容要写在其他的前面才会有效果
    ct.shadowColor = "black";//阴影的颜色
    ct.shadowBlur = 20;//模糊的等级
    ct.shadowOffsetX = 10;//设置或返回阴影与形状的水平距离
    ct.shadowOffsetY = 20;
    ct.fillStyle = "#FF0000";//填充的颜色
    ct.fillRect(20,20,150,100);
    ct.strokeStyle = "blue";//笔触颜色,就是边框的颜色
    ct.strokeRect(20,20,150,100);

    //方法:
/*
    createLinearGradient() 方法创建线性的渐变对象。
    渐变可用于填充矩形、圆形、线条、文本等等。
    提示:请使用该对象作为 strokeStyle 或 fillStyle 属性的值。
    提示:请使用 addColorStop() 方法规定不同的颜色,以及在 gradient 对象中的何处定位颜色。
    ct.createLinearGradient(x0,y0,x1,y1);其中x0是渐变开始的横坐标,y0是渐变开始的纵坐标,x1是渐变结束的横坐标,y1是渐变结束的纵坐标
*/
    var grd1=ct.createLinearGradient(0,0,170,0);
    grd1.addColorStop(0,"black");
    grd1.addColorStop(0.25,"red");
    grd1.addColorStop(0.5,"blue");
    grd1.addColorStop(0.75,"green");
    grd1.addColorStop(1,"white");
    ct.fillStyle=grd1;
    ct.fillRect(20,20,150,100);

/*
    createPattern() 方法在指定的方向内重复指定的元素。
    元素可以是图片、视频,或者其他 <canvas> 元素。
    被重复的元素可用于绘制/填充矩形、圆形或线条等等。
    ct.createPattern(image,"repeat|repeat-x|repeat-y|no-repeat");
    其中image规定要使用的模式的图片、画布或视频元素。
    repeat,默认值,该模式在水平和垂直方向重复。
*/
    var img=document.getElementById("lamp");
    var pat=ct.createPattern(img,"repeat");
    ct.rect(0,0,150,100);
    ct.fillStyle=pat;
    ct.fill();

/*
     createRadialGradient() 方法创建放射状/圆形渐变对象。
     渐变可用于填充矩形、圆形、线条、文本等等。
     提示:请使用该对象作为 strokeStyle 或 fillStyle 属性的值。
     提示:请使用 addColorStop() 方法规定不同的颜色,以及在 gradient 对象中的何处定位颜色。
     ct.createRadialGradient(x0,y0,r0,x1,y1,r1);
     x0 yo x1 y1如上所述,r0表示的是开始圆的半径,y1表示的是结束圆的半径
*/
    var grd2=ct.createRadialGradient(10,10,5,90,60,100);
    grd2.addColorStop(0,"red");
    grd2.addColorStop(1,"white");
    ct.fillStyle=grd2;
    ct.fillRect(10,10,150,100);

    /*
     rect() 方法创建矩形。rectangle
     提示:请使用 stroke() 或 fill() 方法在画布上实际地绘制矩形。
     ct.rect(x,y,width,height);
     其中x是矩形左上角的x坐标,y是矩形左上角的y坐标,width是矩形的宽度,以像素计

     stroke() 方法会实际地绘制出通过 moveTo() 和 lineTo() 方法定义的路径。默认颜色是黑色。
     提示:请使用 strokeStyle 属性来绘制另一种颜色/渐变。
     ct.stroke();

     beginPath() 方法开始一条路径,或重置当前的路径。
     提示:请使用这些方法来创建路径 moveTo()、lineTo()、quadricCurveTo()、bezierCurveTo()、arcTo() 和 arc()。
     提示:请使用 stroke() 方法在画布上绘制确切的路径。
     ct.beginPath();
     */
    // Red rectangle
    ct.beginPath();
    ct.lineWidth="6";
    ct.strokeStyle="red";
    ct.rect(5,5,290,140);
    ct.stroke();

    // Green rectangle
    ct.beginPath();
    ct.lineWidth="4";
    ct.strokeStyle="green";
    ct.rect(30,30,50,50);
    ct.stroke();

    // Blue rectangle
    ct.beginPath();
    ct.lineWidth="10";
    ct.strokeStyle="blue";
    ct.rect(50,50,150,80);
    ct.stroke();

    ct.beginPath();
    ct.moveTo(20,20);
    ct.lineTo(20,100);
    ct.lineTo(70,100);
    ct.strokeStyle="red";
    ct.stroke();

    /*
     fill() 方法填充当前的图像(路径)。默认颜色是黑色。
     提示:请使用 fillStyle 属性来填充另一种颜色/渐变。
     注意:如果路径未关闭,那么 fill() 方法会从路径结束点到开始点之间添加一条线,
     以关闭该路径(正如 closePath() 一样),然后填充该路径
     */
    ct.rect(20,20,150,100);
    ct.fillStyle="red";
    ct.fill();
</script>
</body>
</html>
View Code
新多媒体元素
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>新多媒体元素</title>
</head>
<body>
<!--
autoplay 如果出现该属性,则音频在就绪后马上播放。
controls 如果出现该属性,则向用户显示音频控件(比如播放/暂停按钮)。
loop 如果出现该属性,则每当音频结束时重新开始播放。
muted 如果出现该属性,则音频输出为静音。
preload 值有:auto metadata none    规定当网页加载时,音频是否默认被加载以及如何被加载。
src    规定音频文件的 URL。

video和audio的属性差不多的,只是多了一个poster,值为url,规定视频正在下载时显示的图像,知道用户点击播放按钮
-->
<audio controls>
    <source src="horse.ogg" type="audio/ogg">
    <source src="horse.mp3" type="audio/mpeg">
    您的浏览器不支持 audio 元素。
</audio>
<video width="320" height="240" controls>
    <source src="movie.mp4" type="video/mp4">
    <source src="movie.ogg" type="video/ogg">
    您的浏览器不支持 video 标签。
</video>
<embed src="" type=""><!--定义嵌入的内容,比如插件。-->
<track><!--为诸如 <video> 和 <audio> 元素之类的媒介规定外部文本轨道。-->
        <video width="320" height="240" controls>
            <source src="forrest_gump.mp4" type="video/mp4">
            <source src="forrest_gump.ogg" type="video/ogg">
            <track src="subtitles_en.vtt" kind="subtitles" srclang="en"
                   label="English">
            <track src="subtitles_no.vtt" kind="subtitles" srclang="no"
                   label="Norwegian">
        </video>
</body>
</html>
View Code

 拖拽事件

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>拖拽事件</title>
<style type="text/css">
#div1, #div2
{float:left; width:200px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;}
</style>
<script>
function allowDrop(ev)
{
    ev.preventDefault();//因为默认是无法将数据拖拽到其他元素的,所以这里要阻止默认事件
}

function drag(ev)
{
    ev.dataTransfer.setData("Text",ev.target.id);//设置被拖数据的数据类型和值
}

function drop(ev)
{
    ev.preventDefault();//这里因为drop的默认事件是以链接的方式打开,所以这里要阻止默认事件
    var data=ev.dataTransfer.getData("Text");//获取在 setData() 方法中设置为相同类型的任何数据
    ev.target.appendChild(document.getElementById(data));//将获取到的数据插入目标元素中
}
    </script>
</head>
<body>
<div id="div1" οndrοp="drop(event)" οndragοver="allowDrop(event)">
    <p id="e" οndragstart="drag(event)" draggable="true" >太阳能路灯价格</p></div>
<div id="div2" οndrοp="drop(event)" οndragοver="allowDrop(event)"></div>

</body>
</html>
View Code

 获取地理位置

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>获取地理位置</title> 
</head>
<body>
<p id="demo">点击按钮获取您当前坐标(可能需要比较长的时间获取):</p>
<button οnclick="getLocation()">点我</button>
<!--
检测是否支持地理定位
如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息。
如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象
showPosition() 函数获得并显示经度和纬度
当然我可以使用watchPosition()来代替getCurrentPosition()方法,返回用户的当前位置,并继续返回用户移动时的更新位置(就像汽车上的 GPS)
使用clearWatch() 来停止watchPosition()方法
-->
<script>
var x=document.getElementById("demo");
function getLocation()
{
    if (navigator.geolocation)
    {
        navigator.geolocation.getCurrentPosition(showPosition,showError);//这里可以接受两个参数,第二个为可选的
    }
    else
    {
        x.innerHTML="该浏览器不支持获取地理位置。";
    }
}

function showPosition(position)
{
    x.innerHTML="纬度: " + position.coords.latitude + 
    "<br>经度: " + position.coords.longitude;    
}
    
function showError(error) 
{ 
    switch(error.code) 
    { 
        case error.PERMISSION_DENIED: 
            x.innerHTML="用户拒绝对获取地理位置的请求。" 
            break; 
        case error.POSITION_UNAVAILABLE: 
            x.innerHTML="位置信息是不可用的。" 
            break; 
        case error.TIMEOUT: 
            x.innerHTML="请求用户地理位置超时。" 
            break; 
        case error.UNKNOWN_ERROR: 
            x.innerHTML="未知错误。" 
            break; 
    } 
}
</script>
</body>
</html>
View Code

 

转载于:https://www.cnblogs.com/fireporsche/p/6393556.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值