zoukankan      html  css  js  c++  java
  • html5——拖拽

    基本情况

    在HTML5的规范中,我们可以通过为元素增加draggable="true"来设置此元素是否可以进行拖拽操作,其中图片、链接默认是开启的。

    拖拽元素

    页面中设置了draggable="true"属性的元素

    目标元素

    任意元素都能成为目标元素

    事件监听

    //拖拽元素
    ondrag         //应用于拖拽元素,整个拖拽过程都会调用
    ondragstart    //应用于拖拽元素,当拖拽开始时调用
    ondragleave    //应用于拖拽元素,当鼠标离开拖拽元素时调用
    ondragend      //应用于拖拽元素,当拖拽结束时调用
    //目标元素
    ondragenter    //应用于目标元素,当拖拽元素进入时调用
    ondragover     //应用于目标元素,当停留在目标元素上时调用
    ondrop         //应用于目标元素,当在目标元素上松开鼠标时调用
    ondragleave    //应用于目标元素,当鼠标离开目标元素时调用

     默认事件

    ondragover    //默认不会让其他盒子放置在盒子内,e.preventDefault()可以组织默认事件

    拖拽案例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
    
            div {
                width: 400px;
                height: 400px;
                background-color: greenyellow;
            }
    
            .box2 {
                margin: 0px auto;
            }
    
            ul {
                width: 100%;
                height: 100%;
                list-style: none;
            }
    
            li {
                float: left;
                width: 100px;
                height: 100px;
                background-color: #cccccc;
                border-radius: 50px;
                text-align: center;
                line-height: 100px;
            }
        </style>
    </head>
    <body>
    <div class="box1">
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
    </div>
    <div class="box2">
        <ul>
        </ul>
    </div>
    <script>
        var liArr = document.querySelectorAll(".box1 ul li");
        var box2 = document.querySelector(".box2");
        var ul = document.querySelector(".box2 ul");
        var currLi = null;
        for (var i = 0; i < liArr.length; i++) {
            liArr[i].draggable = true;
            liArr[i].ondragstart = function (ev) {
                currLi = this;
            }
        }
        ul.ondragover = function (e) {
            e.preventDefault();
        }
        ul.ondrop = function (ev) {
            ul.appendChild(currLi);
        }
    </script>
    </body>
    </html>

  • 相关阅读:
    COGS 2104. [NOIP2015]神奇的幻方
    洛谷 P1387 最大正方形
    包和一些常用的模块
    模块
    模块的导入和使用
    函数迭代器与生成器
    函数的小知识
    函数的闭包和装饰器
    函数的进阶
    初识函数
  • 原文地址:https://www.cnblogs.com/wuqiuxue/p/8098528.html
Copyright © 2011-2022 走看看