HTML5拖曳的資料傳輸
雖然透過dragstart、drag和dragend事件實現了原生拖曳。但這只是拖曳,在IE6和IE7中還是有些拖曳問題,也沒有實現資料的交換。為了實現資料的交換,IE5引入了dataTransfer物件。 dataTransfer物件是事件物件的屬性,用於從被拖曳元素相放置目標傳遞字串格式的資料。因為它是事件物件的屬性,所以只能在拖放事件的事件處理程序中存取dataTransfer物件。在事件處理程序中,可以使用這個物件的屬性和方法來完善拖放功能。
dataTransfer物件有兩個主要的方法:getData()方法和setData()方法。從這兩種方法的英文字面意思上就能大概猜出來其用途。 getData()方法可以取得由setData()方法儲存的值。 setData()方法的第一個參數,也是getData()方法唯一的一個參數,是用來保存資料類型的字串,取值是”text”或”URL”。
IE只定義了”text”或”URL”兩種有效的資料類型,而HTML5則對此加以擴展,允許指定各種MIME類型。考慮到向後相容,HTML5也支援”text”或”URL”,但這兩種類型會被映射為”text/plain”或“text/url-list”。
實際上,dataTransfer物件可以為每種MIME類型保存一個值。也就是說同事在這個物件中保存一段文字和一個URL不會有其他問題。不過,保存在dataTransfer物件中的資料只能在drop事件處理程序中讀取。如果在ondrop處理程序中沒有讀取數據,那就是dataTransfer物件已經被銷毀,數據也就隨之遺失了。
在拖曳文字方塊中的文字時,瀏覽器會呼叫setData()方法,將拖曳的文字以”text”格式儲存在dataTransfer物件中。類似地,在拖放連結或圖像時,會呼叫setData()方法並儲存URL。然後,當這些元素被拖曳到放置目標時,就可以透過getData()方法讀到這些資料。當然,身為開發人員,你也可以透過dragstart事件處理程序中呼叫setData(),手動保存自己要傳輸的數據,以便將來使用。
將資料保存在文字和保存為URL是有區別的。如果將資料儲存為文字格式,那麼資料不會得到任何特殊處理。如果儲存為URL格式,瀏覽器會將其當成網頁中的連結。如果你將這個URL放置到另一個瀏覽器視窗中,就可以開啟該URL。
Firefox 5及之前版本是不能將”url”和”text”映射為””和”text/plain”。但是卻能把”Text”(T大寫)映射為”text/plain”。為了更好地在跨瀏覽器的情況下從dataTransfer物件取得數據,最好在取得URL數據時檢測兩個值,而在取得文字資料時使用」Text」。
注意,一定要把短資料型別放在前面,因為IE10及之前的版本仍然不支援擴充的MIME型別名,而它們在遇到無法辨識的資料型別時,會報錯。不過」text」或」URL」取值只有IE是強制的,在火狐3.6+、Chrome和Opera中設定其他任意值的字串也能正常執行。
dropEffect屬性和effectAllowed屬性
運用dataTransfer對象,不僅能傳輸數據,還能透過dataTransfer對象確定被拖曳的元素以及作為放置目標的元素能夠接收什麼操作。要實現這樣的功能就用到了dropEffect屬性和effectAllowed屬性。
dropEffect屬性
其中,透過dropEffect屬性可以知道被拖曳的元素能夠執行哪一種行為。這個屬性的四個值如下:
none:不能把拖曳的元素放在這裡。這是除了文字方塊之外所有元素預設的值。
move:應該把拖曳的元素移到放置目標。
copy:應該把拖曳的元素複製到放置目標。
link:放置目標會打開拖動的元素(但拖動的元素必須是個鏈接,有URL地址)。
把元素拖曳到放置目標上的時候,以上每一個值都會導致遊標顯示為不同的符號。
effectAllowed屬性
光有dropEffect屬性是不咋管用的。只有結合effectAllowed屬性一起使用才能發揮功效。 effectAllowed屬性表示允許拖曳元素的哪一種行為(dropEffect)。 effectAllowed屬性也有很多值,其值如下:
uninitialized:沒有給被拖曳元素設定任何放置行為。
none:被拖曳的元素不能有任何行為。
copy:只允許值為”copy”的dropEffect。
link:只允許值為」link」的dropEffect。
move:只允許值為”move”的dropEffect。
copyLink:允許值為”copy”和”link”的dropEffect。
copyMove:允許值為”copy”和”move”的dropEffect。
linkMove:允許值為”link”和”move”的dropEffect。
all:允許任意dropEffect。
要設定effectAllowed屬性必須在ondragstart事件處理程序中設定。小範例如下
HTML碼
<ul> <li draggable="true">梦龙小站</li> <li draggable="true">梦龙小站</li> <li draggable="true">梦龙小站</li> </ul> <a href="http://www.baidu.com/">梦龙小站</a> <p id="p1">梦龙小站</p>
CSS代碼
li{ width:100px; height:30px; border:1px #000000 solid; margin:20px; list-style:none;} #p1{ width:100px; height:100px; background:red; margin:300px;}
以上就是HTML5實戰與剖析之原生拖曳(三dataTransfer物件)的內容,更多相關內容請關注PHP中文網(www.php.cn)!

Microdatainhtml5enhancesseoanduserexperienceByByBybyBystructuredDatatoSearchEngines.1)useIteMscope,itemType,anditempropattributestomarkupcontentlikeSoreRoductSssSssSoRorevents.2)

html5introducesnewinputtypesthatenhanceSerexperience,簡化開發和iMproveAccessibility.1)自動validatesemailformat.2)優化優化,優化OmportizeSmizesemizesemizesemizesemizesemizeSmobobileWithAnumericKeyPad.3)和Simimplifydateandtimeputientupits,並重新替代了Forcustemolcustemolcustene。

H5是HTML5,是HTML的第五個版本。 HTML5提升了網頁的表現力和交互性,引入了語義化標籤、多媒體支持、離線存儲和Canvas繪圖等新特性,推動了Web技術的發展。

無障礙訪問和網絡標準遵循對網站至關重要。 1)無障礙訪問確保所有用戶都能平等訪問網站,2)網絡標準遵循提高網站的可訪問性和一致性,3)實現無障礙訪問需使用語義化HTML、鍵盤導航、顏色對比度和替代文本,4)遵循這些原則不僅是道德和法律要求,還能擴大用戶群體。

HTML中的H5標籤是第五級標題,用於標記較小的標題或子標題。 1)H5標籤幫助細化內容層次,提升可讀性和SEO。 2)結合CSS可定製樣式,增強視覺效果。 3)合理使用H5標籤,避免濫用,確保內容結構邏輯性。

HTML5構建網站的方法包括:1.使用語義化標籤定義網頁結構,如、、等;2.嵌入多媒體內容,使用和標籤;3.應用表單驗證和本地存儲等高級功能。通過這些步驟,你可以創建一個結構清晰、功能豐富的現代網頁。

通過合理的H5代碼結構可以讓頁面在眾多內容中脫穎而出。 1)使用語義化標籤如、、等組織內容,使結構清晰。 2)通過CSS佈局如Flexbox或Grid控制頁面在不同設備上的呈現效果。 3)實現響應式設計,確保頁面在不同屏幕尺寸上自適應。

HTML5(H5)與舊版本HTML的主要區別包括:1)H5引入了語義化標籤,2)支持多媒體內容,3)提供離線存儲功能。 H5通過新標籤和API增強了網頁的功能和表現力,如和標籤,提高了用戶體驗和SEO效果,但需注意兼容性問題。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具