
享受生活,熱愛重構,大家好,我是Json。
在現在這個到處是HTML5話題的時代,好像不懂點HTML5都有點落伍。那我也跟上潮流一把吧,今天給大家分享的是基于HTML5的自助切圖。
在組里經常會被某設計師叫切板仔,確實重構很大一部分工作都花在切圖上,而如何提高切圖效率或者讓切圖自助化也是我們重構師的追求。基于這個前提我自己抱著研究的心態,使用HTML5大致實現了一下。一開始覺得HTML5是個很神秘很高深的東西,其實當你去了解他,你會發現他是很空虛,且很容易上…………….手的。
這里使用到的HTML5技術包括:
本地預覽(FileReader)
拖拽(drag & drop)
切圖(canvas)
拖拽:
拖拽基本事件如下:
DataTransfer 對象 退拽對象用來傳遞的媒介,使用一般為Event.dataTransfer。 draggable 屬性 就是標簽元素要設置draggable=true,否則不會有效果,例如: <div title=”拖拽我” draggable=”true”&rt;列表1</div:rt;</td&rt; ondragstart 事件 當拖拽元素開始被拖拽的時候觸發的事件,此事件作用在被拖曳元素上 ondragenter 事件 當拖曳元素進入目標元素的時候觸發的事件,此事件作用在目標元素上 ondragover 事件 拖拽元素在目標元素上移動的時候觸發的事件,此事件作用在目標元素上 ondrop 事件 被拖拽的元素在目標元素上同時鼠標放開觸發的事件,此事件作用在目標元素上 ondragend 事件 當拖拽完成后觸發的事件,此事件作用在被拖曳元素上 drageleave事件 當拖拽離開此處時觸發,只在離開這個對象時觸發一次,此事件作用在目標元素上 Event.preventDefault() 方法 阻止默認的些事件方法等執行。在ondragover中一定要執行preventDefault(),否則ondrop事件不會被觸發。另外,如果是從其他應用軟件或是文件中拖東西進來,尤其是圖片的時候,默認的動作是顯示這個圖片或是相關信息,并不是真的執行drop。此時需要用用document的ondragover事件把它直接干掉。 Event.effectAllowed 屬性 就是拖拽的效果。圖1是頁面上所使用到拖拽的地方。左圖為拖拽上傳圖片,右圖為拖拽參考線。

介紹完拖拽基本事件后,再來看下頁面是如何通過拖拽將本地圖片通過拖拽的方式拖到頁面指定區域使用圖片上傳,這也是拖拽現在比較常用到的功能。
給document增加拖拽事件,當拖拽元素進入頁面時改變目標元素樣式提示用戶目標元素位置,當拖拽元素離開頁面后還原樣式。代碼如下:
document.ondragleave = function(e){
e.preventDefault();
var el = document.getElementById('target_box');
el.html' target='_blank'>className = el.className.replace(/over/g,'');
}
document.ondrop = function(e){
e.preventDefault();
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答