HTML实现拖放

效果图:

 

 代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
        #div1 {
            width: 350px;
            height: 70px;
            padding: 10px;
            border: 1px solid #aaaaaa;
            margin-bottom: 10px;
        }
        #div2 {
            width: 350px;
            height: 70px;
            padding: 10px;
            border: 1px solid #aaaaaa;
            margin-bottom: 10px;
        }
        #div3 {
            width: 350px;
            height: 70px;
            padding: 10px;
            border: 1px solid #aaaaaa;
            margin-bottom: 10px;
        }
        .img{
            height: 100px;
            width: 100px;
            padding: 10px;
        }
    </style>
</head>

<body>
    <p>拖动图片到矩形框中:</p>

    <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div id="div3" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <br>

    <div class="img" id="img"  ondrop="drop(event)" ondragover="allowDrop(event)"><img id="drag1" src="./images/zhuanpan/draw_wheel_2.png" draggable="true" ondragstart="drag(event)" width="70" height="70"></div>
    



    <script>
        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));
        }

    </script>
</body>

</html>
  • 首先我这里要拖放的是img,先将img的draggable设为true。
  • 其次主要监听img拖放时的ondragstart事件,和拖放所在位置的div的ondrop和ondragover事件。

ondragstart:

规定当元素被拖动时,会发生什么。

ondrop:

进行放置。

ondragover:

事件规定在何处放置被拖动的数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用HTML和JavaScript实现拖放的棋盘游戏的例子: ```html <!DOCTYPE html> <html> <head> <style> .chessboard { display: flex; flex-wrap: wrap; width: 400px; height: 400px; border: 1px solid black; } .square { width: 50px; height: 50px; border: 1px solid black; } .piece { width: 50px; height: 50px; background-color: red; cursor: move; } </style> </head> <body> <div class="chessboard"> <div class="square"></div> <div class="square"></div> <div class="square"></div> <div class="square"></div> <div class="square"></div> <div class="square"></div> <div class="square"></div> <div class="square"></div> <div class="square"></div> </div> <script> var draggedPiece = null; function handleDragStart(event) { draggedPiece = event.target; event.dataTransfer.setData('text/plain', null); event.target.style.opacity = '0.5'; } function handleDragEnd(event) { event.target.style.opacity = '1'; } function handleDragOver(event) { event.preventDefault(); } function handleDrop(event) { event.preventDefault(); if (event.target.classList.contains('square')) { event.target.appendChild(draggedPiece); } } var pieces = document.getElementsByClassName('piece'); for (var i = 0; i < pieces.length; i++) { pieces[i].addEventListener('dragstart', handleDragStart); pieces[i].addEventListener('dragend', handleDragEnd); } var squares = document.getElementsByClassName('square'); for (var i = 0; i < squares.length; i++) { squares[i].addEventListener('dragover', handleDragOver); squares[i].addEventListener('drop', handleDrop); } </script> </body> </html> ``` 这个例子创建了一个棋盘游戏的HTML页面。棋盘由一系列正方形的格子组成,每个格子都可以拖放棋子。棋子被表示为红色的方块,可以通过拖动它们来移动到其他格子上。当拖动棋子时,它的透明度会降低,当放下棋子时,它会被放置在目标格子中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值