html5 拖动效果怎么在手机上实现

 我来答
育知同创教育
2016-11-12 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部

html5 拖动效果在手机上实现方法是调用drag和drop一系列函数实现的。

注意:拖拽源在拖拽操作结束将得到dragend事件对象,不管操作成功与否。

举例:

  1. 定义可拖放内容

 <div id="columns">
 <div class="column" draggable="true"><header>A</header></div>
 <div class="column" draggable="true"><header>B</header></div>
 <div class="column" draggable="true"><header>C</header></div>
</div>

2、监听拖动事件

可附加大量不同事件以监听整个拖放过程:

dragstart

drag

dragenter

dragleave

dragover

drop

dragend

a.这里是开始拖拽

function handleDragStart(e) {
 this.style.opacity = '0.4';  // this / e.target is the source node.
}
var cols = document.querySelectorAll('#columns .column');
[].forEach.call(cols, function(col) {
 col.addEventListener('dragstart', handleDragStart, false);
});

b.dragenter、dragover 和 dragleave 事件处理程序可用于在拖动过程中提供额外的可视化提示。例如,在拖动期间将鼠标悬停在某一列上方时,其边框可能会变成虚线。这样,用户就能知道这些列也是放置的目标区域。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哎呦互动
2024-07-12 广告
现场大屏幕互动软件产品开发欢迎咨询上海爱友信息科技有限公司,公司成立于2016年,是国内最早的一批H5软件开发商之一。公司经过多年的自主研发并不断迭代的互动产品“哎呦互动”,已经获得数十项软件著作权和多项软件专利,并积累了众多的品牌客户和无... 点击进入详情页
本回答由哎呦互动提供
你三千妖杀
2016-07-07 · 超过30用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:50.1万
展开全部
以前,我们做过JS拖动DIV层的,比如“js实现div拖动功能”。进入HTML5时代,我们也可以用HTML5的代码来实现拖动,对哦,我们之前也做过一个HTML5拖动的,不过,那个是实现从桌面拖动文件到浏览器,“HTML5实现图片拖放特效”,有兴趣的可以看下。
HTML5为我们提供了ondragstart,ondragover,ondrop这三个函数,我不禁想到了做js触屏时的touchstart,touchmove,touchend,看来,代码的设计思路都是差不多的啊。
<!DOCTYPE html>
<html lang="en">
<head>
<style>
 #rubbishBox
 {
  float:left;
  height:300px;
  width:400px;
  background-color: grey; 
  -webkit-writing-mode: lr-tb;
  vertical-align: middle;
 }
 #dragBox
 {
  width: 504px;
  margin-left: 500px;
 } 
 #dragBox div
 {
  width:500px;
  height: 30px;
  border:2px dashed grey; 
  margin-bottom: 10px; 
 }
 #dragBox div:hover
 {
  background-color: silver;
 } 
</style>
</head>
<body>
<div id="rubbishBox">垃圾箱<br/></div>
<div id="dragBox">
 <div class="drag">a把我拖进垃圾箱吧</div>
 <div class="drag">b把我拖进垃圾箱吧</div>
 <div class="drag">c把我拖进垃圾箱吧</div>
 <div class="drag">d把我拖进垃圾箱吧</div>
 <div class="drag">e把我拖进垃圾箱吧</div>
</div>
<script type="text/javascript">
 document.ondragover = function(ev) { ev.preventDefault(); };
 var dragChild = null;
 var length = document.getElementById("dragBox").childNodes.length;
 var nodes = document.getElementById("dragBox").childNodes;
 for(var i=0;i<length;i++)
 {
  if(nodes[i].nodeType==1)
  {
   if(nodes[i].getAttribute("class")=="drag")
   {
    nodes[i].setAttribute("draggable","true");
    nodes[i].ondragstart = function(ev)
    {
     var dt = ev.dataTransfer;
     dt.effectAllowed = "move";
     dt.setData("text/plain",this.innerText);
     dragChild = this;
    };
    nodes[i].ondragend = function(ev)
    {
     dragChild = null;
    };
   } 
  }      
 }

 var rubbishBox = document.getElementById("rubbishBox");
 rubbishBox.ondragover = function(ev){
  ev.dataTransfer.dropEffect = "move ";
  ev.preventDefault();
 };
 rubbishBox.ondragenter = function(){
  this.style.color = "white";
 };
 rubbishBox.ondrop = function(ev)
 {
  var dt = ev.dataTransfer;
  this.appendChild(document.createTextNode(dt.getData("text/plain")));
  this.appendChild(document.createElement("br"));
  document.getElementById("dragBox").removeChild(dragChild);
 }
</script>
</body>
</html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式