HTML5的高级API
1,全屏API:DOM元素支持全屏,HTML5的标准写法是 ele.requestFullScreen( ), 即可使DOM元素全屏;但是由于该方法处于不够完善,所以需要写各个浏览器的兼容代码;
|
|
2,拖拽API:拖拉事件(drag&&drop)
拖拉指的是,用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里。
拖拉的对象有好几种,包括Element节点、图片、链接、选中的文字等等。在HTML网页中,除了Element节点默认不可以拖拉,其他(图片、链接、选中的文字)都是可以直接拖拉的。为了让Element节点可拖拉,可以将该节点的draggable属性设为true。
draggable属性可用于任何Element节点,但是图片(img元素)和链接(a元素)不加这个属性,就可以拖拉。对于它们,用到这个属性的时候,往往是将其设为false,防止拖拉。
注意,一旦某个Element节点的draggable属性设为true,就无法再用鼠标选中该节点内部的文字或子节点了
首先来看有哪些拖放(drag和drop)的事件,如果要是元素可以拖拽,
首先要给该元素设置 draggable = true 属性,保证该元素可以被拖放.(img标签默认支持拖放,div默认不支持拖放)
拖拽元素的监听事件如下:
- ondrag 当拖动元素的时候运行脚本被拖动的元素在拖动过程中持续触发
- ondragstart 当元素拖动操作开始时候运行脚本
- ondragend 当拖动操作结束的时候运行脚本
目标元素的上的监听事件如下:在默认情况下,拖放的目标元素是不允许接受元素的,为了把元素拖放到其中,必须把默认处理给关掉 给目标元素设置 e.preventDefault() 阻止默认事件的发生;使得被拖放元素可以放入目标元素里面。
ondragover 当元素被拖动至有效拖放目标元素上方时持续执行脚本
ondragenter 当元素被拖动至有效拖动目标元素时执行脚本
ondragleave 当元素离开至有效拖放目标元素时运行脚本
ondrop 当被拖动元素正在被放下的时候运行脚本;注意,如果当前节点不允许drop,即使在该节点上方松开鼠标键,也不会触发该事件。如果用户按下Escape键,取消这个操作,也不会触发该事件。该事件的监听函数负责取出拖拉数据,并进行相关处理。注意:只有鼠标松开才算放下,鼠标松开的时候才会触发该事件
dragenter和dragover事件的监听函数,用来指定可以放下(drop)拖拉的数据。由于网页的大部分区域不适合作为drop的目标节点,所以这两个事件的默认设置为当前节点不允许drop。如果想要在目标节点上drop拖拉的数据,首先必须阻止这两个事件的默认行为,或者取消这两个事件。
注意如果想要使目标元素可以被放进来拖放的元素,因为默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。此时需要对目标元素进行处理,调用dragover阻止默认事件 的方法:
|
|
3 代码演示
|
|