HTML5技术

HTML5 基础 - 彼岸时光(7)

字号+ 作者:H5之家 来源:H5之家 2016-03-08 17:00 我要评论( )

拖放 showDrop(ev){ 21 ev.preventDefault(); 22 } drag(ev){ ,ev.target.id); 26 } drop(ev){ 29 ev.preventDefault(); ); 31 ev.target.appendChild(document.getElementById(data)); 32 } 拖放效果主要是通过 JS

拖放 showDrop(ev){ 21 ev.preventDefault(); 22 } drag(ev){ ,ev.target.id); 26 } drop(ev){ 29 ev.preventDefault(); ); 31 ev.target.appendChild(document.getElementById(data)); 32 }

  拖放效果主要是通过 JS 完成的,下面将对拖放事件的不同部分进行分析。

  代码解析:

  ①、设置元素为可拖放

  首先,为了使元素可拖动,把 draggable 属性设置为 true :

  draggable 属性用于规定元素是否可拖动,默认值为 auto 使用浏览器的默认特性。当值为 true 时元素是可拖动的,false 则指定元素不可拖动。注意:链接和图像默认是可拖动的。

  ②、拖动什么 - ondragstart 和 setData()

  然后,规定当元素被拖动时,会发生什么。

  在上面的例子中,ondragstart 属性调用了一个函数 drag(event),它规定了被拖动的数据。

  dataTransfer.setData() 方法设置被拖数据的数据类型和值:

1 function drag(ev){ 2 ev.dataTransfer.setData("Text",ev.target.id); 3 }

  在这个例子中,数据类型是 "Text",值是可拖动元素的 id ("demo")。

  ③、放到何处 - ondragover

  ondragover 事件规定在何处放置被拖动的数据。

  默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,则必须阻止对元素的默认处理方式。

  需要通过调用 ondragover 事件的 event.preventDefault() 方法:

1 function showDrop(ev){ 2 ev.preventDefault(); 3 }

  ④、进行放置 - ondrop

  当放置被拖数据时,会发生 drop 事件。

  在上面的例子中,ondrop 属性调用了一个函数,drop(event):

1 function drop(ev){ 2 ev.preventDefault(); 3 var data = ev.dataTransfer.getData("Text"); 4 ev.target.appendChild(document.getElementById(data)); 5 }

  代码解析:

    ①、调用 preventDefault() 来避免浏览器对数据的默认处理,drop 事件的默认行为是以链接形式打开。

    ②、通过 dataTransfer.getData("Text") 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。

    ③、被拖数据是被拖元素的 id ("demo")。

    ④、把被拖元素追加到放置元素(目标元素)中。

  下面的例子,可以在2个 div 之间来回拖放图像:

来回拖放 showDrop(ev){ 24 ev.preventDefault(); 25 } drag(ev){ ,ev.target.id); 29 } drop(ev){ 32 ev.preventDefault(); ); 34 ev.target.appendChild(document.getElementById(data)); 35 }

 

6、HTML5 Geolocation(地理定位)

  HTML5 Geolocation API 用于获得用户的地理位置。

  鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。

  (1)、使用地理定位

  如需定位用户的位置,可以使用 getCurrentPosition() 方法。

  下例是一个简单的地理定位例子,可返回用户位置的经度和纬度:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    2017-05-02 11:02

  • vue全局配置----小白基础篇 - 星光笔

    vue全局配置----小白基础篇 - 星光笔

    2017-04-28 08:04

  • HTML5 进阶系列:indexedDB 数据库 - _林鑫

    HTML5 进阶系列:indexedDB 数据库 - _林鑫

    2017-04-27 14:02

  • HTML5 高级系列:web Storage - _林鑫

    HTML5 高级系列:web Storage - _林鑫

    2017-04-27 14:01

网友点评
>