看下,事件是否完全執(zhí)行;
為芙蓉等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及芙蓉網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、芙蓉網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
var id = e.DataTransfer.getData('Text');
另外建議在chrome下看看 更明確的錯(cuò)誤提示。
并且:
e.DataTransfer 沒getData 和setData方法。
阻止事件冒泡 e.stopPropagation() IE window.event.cancelBubble = true;
阻止時(shí)事件默認(rèn) e.preventDefault() IE window.event.returnValue = false;
或者你要把e兼容處理就是 e = e || window.event;
阻止事件冒泡 e.stopPropagation() IE e.cancelBubble = true;
阻止時(shí)事件默認(rèn) e.preventDefault() IE e.returnValue = false;
DataTransfer對(duì)象:退拽傳遞的對(duì)象,一般使用Event.dataTransfer。
2
draggable屬性,標(biāo)簽元素設(shè)置值為true。drangable=true。
3
ondragstart事件:元素被拖拽的時(shí)候觸發(fā)的事件,作用在被拖拽元素上。
ondragenter事件:進(jìn)入目標(biāo)元素觸發(fā)事件,作用在目標(biāo)元素上。
ondragover事件:拖拽元素在目標(biāo)元素上移動(dòng)的時(shí)候觸發(fā)的事件,作用在目標(biāo)元素上。
ondrop事件:被拖拽的元素在目標(biāo)元素上同時(shí)鼠標(biāo)放開觸發(fā)的事件,作用在目標(biāo)元素上。
ondragend事件:拖拽完成后觸發(fā)事件,作用在被拖拽元素上。
Event.preventDefault()方法:阻止默認(rèn)方法執(zhí)行。ondragover中一定要執(zhí)行preventDefault(),否則ondrop事件不會(huì)被 觸發(fā)。
Event.effectAllowed屬性:拖拽的效果。
設(shè)置元素為可拖放,draggable屬性設(shè)置為true。img draggable="true"
拖動(dòng)元素 使用ondragstart事件。setData()設(shè)置獲取元素。
dataTransfer.setData()方法設(shè)置被拖數(shù)據(jù)類型和值:
function drag(ev){
ev.dataTransfer.setData("Text",ev.target.id);
}
drag(event)聲明方法,規(guī)定被拖動(dòng)的數(shù)據(jù),類型是"text",值是可拖動(dòng)元素id獲取。
拖拽放入目標(biāo) ondragover,ondragover事件規(guī)定在何處放置被拖拽的數(shù)據(jù)。
一定要定義event.preventDefault(),來阻止默認(rèn)動(dòng)作。
進(jìn)行放置 ondrop 當(dāng)放置被拖數(shù)據(jù)時(shí),會(huì)發(fā)生drop事件。
function drop(ev){
ev.preventDefault();
var data=ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
HTML5 的新屬性 drag 可以實(shí)現(xiàn)這個(gè)效果
如果想出現(xiàn)拖動(dòng)的動(dòng)畫效果 就用 JS 的 onmousedown 和 onmousemove 來實(shí)現(xiàn)
,首先要判斷拖入的文件是否符合要求,包括圖片類型、大小等,然后獲取本地圖片信息,實(shí)現(xiàn)預(yù)覽,最后上傳。
$(function(){
...接上部分
var box = document.getElementById('drop_area'); //拖拽區(qū)域
box.addEventListener("drop",function(e){
e.preventDefault(); //取消默認(rèn)瀏覽器拖拽效果
var fileList = e.dataTransfer.files; //獲取文件對(duì)象
//檢測(cè)是否是拖拽文件到頁面的操作
if(fileList.length == 0){
return false;
}
//檢測(cè)文件是不是圖片
if(fileList[0].type.indexOf('image') === -1){
alert("您拖的不是圖片!");
return false;
}
//拖拉圖片到瀏覽器,可以實(shí)現(xiàn)預(yù)覽功能
var img = window.webkitURL.createObjectURL(fileList[0]);
var filename = fileList[0].name; //圖片名稱
var filesize = Math.floor((fileList[0].size)/1024);
if(filesize500){
alert("上傳大小不能超過500K.");
return false;
}
var str = "img src='"+img+"'p圖片名稱:"+filename+"/pp大?。?+filesize+"KB/p";
$("#preview").html(str);
//上傳
xhr = new XMLHttpRequest();
xhr.open("post", "upload.php", true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
var fd = new FormData();
fd.append('mypic', fileList[0]);
xhr.send(fd);
},false);
});
[img]1、不自定義進(jìn)度條的話就只能用默認(rèn)進(jìn)度條,默認(rèn)的進(jìn)度條是集合在video標(biāo)簽中的,這個(gè)我們無法實(shí)現(xiàn)不能拖動(dòng),但是可以模擬下,你可以使用讓鼠標(biāo)點(diǎn)擊到視頻所在的video或者div的時(shí)候無效化,原理就是鼠標(biāo)選不到進(jìn)度條,自然不能拖動(dòng)了。如果你是要可以控制播放和暫停的話就實(shí)現(xiàn)js控制,反正是跳過video自帶的控制器自己去寫。2、用個(gè)透明的層或圖片把進(jìn)度條蓋住