HTML5 拖放使用

来源:https://www.cnblogs.com/LinSL/archive/2018/03/28/8665312.html
-Advertisement-
Play Games

1 2 3 4 5 拖放API 6 31 32 33 34 請拖放 35 36 37 94 95 ...


 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>拖放API</title>
 6     <style>
 7        [id='dragme']{
 8             width: 100px;
 9             height: 100px;
10             color: #fff;
11             text-align: center;
12             line-height: 100px;
13             background-color:#aaa;
14             user-select: none;
15             cursor:pointer;
16        }
17        [id='text']{
18             width: 300px;
19             height: 300px;
20             margin-top: 20px;
21        }
22        .border{
23             border: 1px solid #aaa;
24             border-radius:.2em;
25             box-shadow:2px 2px 3px #aaa;
26        }
27        .hide{
28             display: none;
29        }
30     </style>
31 </head>
32 <body>
33     <div class="content">
34         <div class="border" id="dragme" draggable="true">請拖放</div>
35         <div class="border" id="text"></div>
36     </div>
37     <script>
38         var page = {
39             init : function(){
40                 this.draggable();
41                 this.perDefault();
42             },
43             draggable : function(){
44                 var source    = document.getElementById('dragme'),
45                     dest      = document.getElementById('text'),
46                     dragIcon  = document.createElement('img'),
47                     n         = 1;
48                 dragIcon.src = '';
49                 //拖放開始
50                 source.addEventListener('dragstart', function(ev){
51                     //向dataTransfer追加數據
52                     var dt = ev.dataTransfer;
53                     dt.effectAllowed = 'all';
54                     dt.setData("text/plain", n);
55                     //自定義拖放圖標
56                     dt.setDragImage(dragIcon, -10, -10);
57                 },false);
58                 //拖放結束
59                 dest.addEventListener('dragend', function(ev){
60                     ev.preventDefault();
61                 },false)
62                 //被拖放
63                 dest.addEventListener('drop', function(ev){
64                     n++;
65                     //從dataTransfer對象獲取數據
66                     var dt   = ev.dataTransfer,
67                         text = dt.getData("text/plain");
68                         dest.textContent += text+'  ';
69                         //阻止預設行為(拒絕被拖放)
70                         ev.preventDefault();
71                         //阻止事件冒泡
72                         ev.stopPropagation();
73                 },false)
74                 //被拖放的元素在本元素範圍內移動
75                 //dropEffect拖放時的視覺效果/圖標
76                 dest.addEventListener("dragover", function(ev){
77                     var dt = ev.dataTransfer;
78                     dt.dropEffect = 'link';
79                     ev.preventDefault();
80                 },false)
81             },
82             //設置頁面屬性,阻止預設行為
83             perDefault : function(){
84                 document.ondragover = function(e){
85                     e.preventDefault();
86                 }
87                 document.indrop = function(e){
88                     e.preventDefault();
89                 }
90             }
91         }
92         window.onload = page.init();
93     </script>
94 </body>
95 </html>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • iOS平臺是按照一直有網路連接的思路來設計的,開發者利用這一特點創造了很多優秀的第三方應用。大多數的iOS應用都需要聯網,甚至有些應用嚴重依賴網路,沒有網路就無法正常工作。 "在訪問網路失敗的時候 ,應用沒有做出適當的提示“是蘋果的iOS審核團隊拒絕一個應用的常見理由。蘋果要求你必須先檢測網路連接狀 ...
  • 引子: 別的複雜前端開發技術不會,用得多的還是手寫代碼,手動處理。 3年前手寫合併壓縮js和css文件的asp腳本代碼目前還能正常運行,也就沒有多大使用別的技術的動力。 直到近期被一個問題糾結著,今天花了一天時間摸索完成了一個後端構建功能。 目前接觸到的項目前端開發模式基本上是一樣的 1. 項目不會 ...
  • <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <b>加粗</b> <u>下劃線</u> <i>傾斜</i> <p>一個段落</p> <a name="here">回到此處</a> <ol typ ...
  • 大多數情況下容易忘記的快捷鍵,在此整理了一下。 編輯快捷鍵:cmd+L:選擇行(重覆按下將下一行加入選擇);cmd+D:選擇詞(重覆按下時多重選擇相同的詞進行多重編輯);cmd+shift+D 複製游標所在整行,插入到下一行control+shift+M:選擇括弧的內容; cmd+shift+ent ...
  • H5中新增的表單屬性:autofocus(獲得焦點)、placeholder(給出提示信息)、list(類似下拉列表)、autocomplete(有記錄的話會自動出現記錄信息)input元素:color(顏色選擇器) date(日期選擇器) time(時間選擇器) datetime-local(本地 ...
  • background-clip屬性的通俗作用就是指定元素背景所在的區域,有四種取值 1、border-box border-box是預設值,表示元素的背景從border區域(包括border)以內開始保留背景。 簡單代碼如下: 效果如下: 從上圖我們可以看出,元素背景預設是存在於邊框及以內的區域,但 ...
  • 在製作網頁動態效果時,一定會遇到某些需求,要求某段程式等待多時時間後再開始執行,就像在我們的生活中一樣,待會兒再開始做一件事。在JavaScript中主要通過定時器實現此類需求,本文將對定時器做一個概括,正對setTimeout()做一個詳細用法總結。 一.setInterval與setTimeou ...
  • [轉載] meta的標簽的使用是我在前端學習中曾經困惑過一段時間的問題。一方面不是很瞭解meta標簽的用途,另一方面是對於meta標簽里的屬性和值不是懂,也不知道從哪裡冒出來的,所以這篇文章專門整理下meta標簽,一個必用且關鍵的標簽。 什麼是meta標簽?引自下W3school的定義說明一下。元數 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...