前端学习之路html5(02)-特性

html5 拖放

drag(拖拽)和drop(放置)是html5中的标准。即我们抓取一个对象通过移动将它放置到另一对象当中去。
我们可以考虑一下,拖动一个对象需要知道哪些东西呢?不外乎以下几个方面。哪些可以拖动、拖动什么、拖到何处、如何放置,我们就从以下这三点来考虑。

哪些可以拖动?

html5给元素提供了一个draggable属性来设置是否可拖动;
true可拖动、false不可。

拖动什么?

ondragstart、setData()。
当某个对象可被拖动且刚被拖动时,它做了什么?实际上,我们可以通过ondragstart属性来设置。ondragstart属性调用一个函数,函数中通过setData()函数来决定拖动什么。

拖到何处?

ondragover事件规定在何处放置被拖动的数据。默认的,无法将数据/元素放置到其他元素中去。如果需要设置允许放置,我们必须阻止对元素默认的处理方式。这就要通过调用ondragove事件中的event.preventDefault()方法。

如何放置?

当松开放置时会处理ondrop事件。通过以下代码来理解处理流程。

ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
  • 调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开);
  • 通过 dataTransfer.getData(“Text”) 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据;
  • 被拖数据是被拖元素的 id (“drag1”);
  • 把被拖元素追加到放置元素(目标元素)中 。

示例

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>拖拽美女</title> 
<style type="text/css">
    #myDiv1, #myDiv2
    {float: left; width: 200px; height: 150px; margin: 10px; border: 1px solid #aaaaaa;}
</style>
<script type="text/javascript">
function allowDrag(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="myDiv1" ondrop="drop(event)" ondragover="allowDrag(event)"></div>
<div id="myDiv2" ondrop="drop(event)" ondragover="allowDrag(event)"></div>
<img id="img" src="images/girl01.jpg" width="200px" height="150px" draggable="true" ondragstart="drag(event)">
</body>

</html>

这里写图片描述


html5 地理位置

在没有进行实际运用时,感觉意义不大,等系统过一遍html5之后再好好研究。


html5 video视频

  • <video> 元素提供了 播放、暂停和音量控件来控制视频。
  • <video>元素元素也提供了 width 和 height 属性控制视频的尺寸.如果设置的高度和宽度,所需的视频空间会在页面加载时保留。如果没有设置这些属性,浏览器不知道大小的视频,浏览器就不能再加载时保留特定的空间,页面就会根据原始视频的大小而改变。
  • <video> 与</video> 标签之间插入的内容是提供给不支持 video 元素的浏览器显示的。
  • <video> 元素支持多个 <source> 元素可以链接不同的视频文件。浏览器将使用第一个可识别的格式。
  • 支持的视频格式为mp4、WebM、Ogg。几乎所有浏览器都支持mp4格式其它格式不一定被支持,所以mp4格式是最好的选择。
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>播放mp4</title>    
</head>

<body>

<div style="text-align:center; margin: 10px"> 
    <video id="myVideo" width="500" controls>
    <source src="video/movie.mp4" type="video/mp4">
    </video><br>
    <button onclick="startOrStop()">播放/暂停</button>
    <button onclick="bigWindow()">放大</button>
    <button onclick="normalWindow()">恢复</button>
</div>


<script type="text/javascript">
var myVideo = document.getElementById("myVideo");
function startOrStop(){
    if (myVideo.paused)
        myVideo.play();
    else
        myVideo.pause();
}
function bigWindow(){
    myVideo.width=1000;
}
function normalWindow(){
    myVideo.width=500;
}
</script>

</body>

</html>

这里写图片描述


html5 audio音频

  • <audio>提供了播放音频的控件,它的用法属性和<video>有些类似;
  • 音频格式为三种mp3、wav、ogg,mp3格式是最佳选择。
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>播放mp3</title>    
</head>

<body>
<div margin: 10px"> 
    夏小虎_人生<br>
    <audio controls>
        <source src="audio/myMusic.mp3" type="audio/mpeg">
        <source src="horse.mp3" type="audio/mpeg">
    </audio>
</div>
</body>

</html>

这里写图片描述


html5 Input类型

html5中添加许多新的表单输入类型。

  • color,用于选择颜色;
  • date,日期选择器;
  • datetime,选择一个日期(UTC 时间)。
  • datetime-local,选择一个日期和时间 (无时区)。
  • email,用于应该包含 e-mail 地址的输入域,提交时会自动验证值是否合法。
  • month,选择日期到月份,即年月。
  • search,用于搜索域,比如站点搜索或 Google 搜索。
  • tel,输入电话号码…貌似没有浏览器支持,用number替代吧。
  • time,选择一个时间(无时区)。
  • url,用于应该包含 URL 地址的输入域。提交表单时,会自动验证 url 域的值。
  • week,选择周和年。
  • number,输入数值,可对输入进行限制,再提交时验证值得合法性。
    1.disabled,规定输入字段是禁止的;
    2.max,输入的最大值;
    3.maxlength,输入字符的最大长度;
    4.min,输入的最小值;
    5.pattern,用于验证输入字段的模式;
    6.readonly,输入的字段值不可修改;
    7.required,输入的字段值是必须的;
    8.size,输入字段中可见的字符数;
    9.step,输入字段的的合法数字间隔;
    10.value,输入字段的默认值;
  • range,包含一定数值范围的滑动条。
    1.max最大值;
    2.min最小值;
    3.step数字间隔;
    4.value默认值;
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>input</title>    
</head>

<body>
<form>
    (color):
    <input type="color" ><br><br>
    (date):
    <input type="date" ><br><br>
    (datetime):
    <input type="datetime" ><br><br>
    (datetime-local):
    <input type="datetime-local"><br><br>
    (email):
    <input type="email"><input type="submit"><br><br>
    (month):
    <input type="month"><br><br>
    (number):
    <input type="number" min="1" max="6"><br><br>
    (range):
    <input type="range" min="0" max="100" step="5" value="50"><br><br>
    (search):
    <input type="search"><br><br>
    (time):
    <input type="time" ><br><br>
    (url):
    <input type="url"><br><br>
    (week):
    <input type="week">
</form>
</body>

</html>

这里写图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值