• 2021年了,我才知道H5支持元素拖放!!!


    直接上例子:图片可以在在两个div中来回拖放

          // CSS
          <style type="text/css">
          #div1, #div2
          {float:left; 100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;}
          </style>
    
          // HTML
          <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">
    	<img src="img_w3slogo.gif" draggable="true" ondragstart="drag(event)" id="drag1" width="88" height="31">
          </div>
          <div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    
          // JS
          function allowDrop(ev){
    	ev.preventDefault();
          }
    
          function drag(ev){
    	ev.dataTransfer.setData("Text",ev.target.id);
          }
    
          function drop(ev) {
    	ev.preventDefault();
    	var data=ev.dataTransfer.getData("Text");
    	ev.target.appendChild(document.getElementById(data));
          }
    

    解释

    • 拖放元素需要id,必须设置

    • 拖放元素添加draggable="true"属性,保证允许拖放

    • 拖放元素添加拖动事件ondragstart,ev.dataTransfer.setData设置被拖放元素的数据类型和值(id)

    • 拖放元素放置容器需要有两个事件

    • ondragover:允许别的元素放进来,因为默认是不允许的

    • drop:放置元素触发该事件

    1. 调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开)
    2. ev.dataTransfer.getData("Text")来获取该元素
    3. ev.target.appendChild(document.getElementById(data))被拖放元素追加到容器中

    浏览器支持

    • 这么好用的方法,IE9以下就别想了

    碎碎念

    • 愚昧的我以为别人的拖放都是用了很厉害很高大上的插件,原来是H5的方法。哭唧唧。。。。2021年才发现
  • 相关阅读:
    了解node.js
    RC4 in TLS is Broken: Now What?
    LDAP 在ubuntu14.04下的安装配置install and configure
    Bucking the stigma (留学生请摘掉有色眼镜看社区大学)
    SSL Labs: Increased Penalty When TLS 1.2 Is Not Supported
    PostgresQL中的NUlls first/last功能
    网页小工具集合
    T-SQL在线格式化工具
    sudoers文件解析
    Java提高篇——JVM加载class文件的原理机制
  • 原文地址:https://www.cnblogs.com/facy/p/14236197.html
Copyright © 2020-2023  润新知