vue 限制在指定容器內可拖拽的div

在這里插入圖片描述

<template><div class="container" id="container"><div class="drag-box center" v-drag v-if="isShowDrag"><div>無法拖拽出容器的div浮窗</div></div></div>
</template><script>
export default {data() {return {isShowDrag: true,};},//自定義指令directives: {drag: {// 指令的定義bind: function (drag_dom) {drag_dom.onmousedown = (e) => {// 按下鼠標時,鼠標相對于被拖拽元素的坐標let disX = e.clientX - drag_dom.offsetLeft;let disY = e.clientY - drag_dom.offsetTop;// 獲取容器domlet container_dom = document.getElementById("container");document.onmousemove = (e) => {// 用鼠標的位置減去鼠標相對元素的位置,得到元素的位置let left = e.clientX - disX;let top = e.clientY - disY;// 在容器范圍內移動時,被拖拽元素的最大left值let leftMax =container_dom.offsetLeft +(container_dom.clientWidth - drag_dom.clientWidth);// 在容器范圍內移動時,被拖拽元素的最小left值let leftMin = container_dom.offsetLeft + 1; //此處+1為容器的邊框1pxif (left > leftMax) {drag_dom.style.left = leftMax + "px";} else if (left < leftMin) {drag_dom.style.left = leftMin + "px";} else {drag_dom.style.left = left + "px";}// 在容器范圍內移動時,被拖拽元素的最大left值let topMax =container_dom.offsetTop +(container_dom.clientHeight - drag_dom.clientHeight);// 在容器范圍內移動時,被拖拽元素的最小left值let topMin = container_dom.offsetTop + 1; //此處+1為容器的邊框1pxif (top > topMax) {drag_dom.style.top = topMax + "px";} else if (top < topMin) {drag_dom.style.top = leftMin + "px";} else {drag_dom.style.top = top + "px";}};document.onmouseup = () => {document.onmousemove = null;document.onmouseup = null;};};},},},
};
</script><style lang="scss" scoped>
.drag-box {position: absolute;top: 100px;left: 100px;width: 300px;height: 100px;background: #fff;border-radius: 5px;box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);padding: 10px;// 改變鼠標樣式為移動圖標cursor: move;// 禁止文字被選中user-select: none;
}.container {border: 1px solid red;width: 600px;height: 300px;margin: 30px;
}.center {display: flex;justify-content: center;align-items: center;
}
</style>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211278.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211278.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211278.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

P11 Linux進程編程exec族函數

前言 &#x1f3ac; 個人主頁&#xff1a;ChenPi &#x1f43b;推薦專欄1: 《Linux C應用編程&#xff08;概念類&#xff09;_ChenPi的博客-CSDN博客》??? &#x1f525; 推薦專欄2: 《C_ChenPi的博客-CSDN博客》??? &#x1f6f8;推薦專欄3: ??????《鏈表_C…

Java 簡易版 UDP 多人聊天室

服務端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…

算法通關村第五關—LRU的設計與實現(黃金)

LRU的設計與實現 一、理解LRU的原理 LeetCode146:運用你所掌握的數據結構&#xff0c;設計和實現一個LRU(最近最少使用)緩存機制 實現LRUCache類&#xff1a; LRUCache(int capacity) 以正整數作為容量capacity初始化 LRU 緩存 int get(int key) 如果關鍵字key存在于緩存中&a…

數據可視化|jupyter notebook運行pyecharts,無法正常顯示“可視化圖形”,怎么解決?

前言 本文是該專欄的第39篇,后面會持續分享python數據分析的干貨知識,記得關注。 相信有些同學在本地使用jupyter notebook運行pyecharts的時候,在代碼沒有任何異常的情況下,無論是html還是notebook區域,都無法顯示“可視化圖形”,界面區域只有空白一片。遇到這種情況,…

SQL(COALESCE)

zstarling 非空值查找及替換COALESCE 非空值查找及替換COALESCE 新語法SQL COALESCE(staff_no,staff_no1,)詳解 在SQL中&#xff0c;COALESCE函數用于返回一組表達式中的第一個非NULL值。它接受兩個或多個參數&#xff0c;并按參數順序依次判斷每個參數是否為NULL&#xff0c…

如何才能保證績效考核的有效性呢?

績效管理是現代人力資源管理的核心&#xff0c;做好績效考核是做好績效管理的重要手段。但企業績效考核的設計往往缺乏針對性和科學性&#xff0c;績效考核工作也常常停留在形式上&#xff0c;最終沒能為提高組織效率提供幫助&#xff0c;還消耗員工與管理者的時間、精力。于是…

Nginx服務優化以及防盜鏈

1. 隱藏版本號 以在 CentOS 中使用命令 curl -I http://192.168.66.10 顯示響應報文首部信息。 查看版本號 curl -I http://192.168.66.10 1. 修改配置文件 vim /usr/local/nginx/conf/nginx.conf http {include mime.types;default_type application/octet-stream;…

京東數據運營(京東API接口):10月投影儀店鋪數據分析

鯨參謀監測的京東平臺10月份投影儀市場銷售數據已出爐&#xff01; 10月份&#xff0c;環同比來看&#xff0c;投影儀市場銷售均上漲。鯨參謀數據顯示&#xff0c;今年10月&#xff0c;京東平臺投影儀的銷量為16萬&#xff0c;環比增長約22%&#xff0c;同比增長約8%&#xff1…

鴻蒙應用開發ArkTS基礎組件的使用

語雀知識庫地址&#xff1a;語雀HarmonyOS知識庫 飛書知識庫地址&#xff1a;飛書HarmonyOS知識庫 本文示例代碼地址&#xff1a;Gitee 倉庫地址 嗨&#xff0c;各位好呀&#xff0c;我是小白 上一篇文章我為大家介紹了如何使用 ArkTS 開發鴻蒙應用&#xff0c;對 HarmonyOS 項…

大文件分割,合并------C++ ------fstream

將一個大文件(這里測試文件為5.2G)切分為指定大小的文件,然后在把分割后的文件拼接合并為分割前的源文件 #include <boost/timer.hpp> // 計時函數#include <filesystem> #include <fstream> #include <vector> // 分隔后文件夾的格式, 原文件名_chun…

探索開源游戲的樂趣與無限可能 | 開源專題 No.47

CleverRaven/Cataclysm-DDA Stars: 9.0k License: NOASSERTION Cataclysm&#xff1a;Dark Days Ahead 是一個回合制的生存游戲&#xff0c;設定在一個后啟示錄世界中。盡管有些人將其描述為 “僵尸游戲”&#xff0c;但 Cataclysm 遠不止于此。在這個殘酷、持久、程序生成的世…

【原創】【一類問題的通法】【真題+李6卷6+李4卷4(+李6卷5)分析】合同矩陣A B有PTAP=B,求可逆陣P的策略

【鋪墊】二次型做的變換與相應二次型矩陣的對應&#xff1a;二次型f&#xff08;x1&#xff0c;x2&#xff0c;x3&#xff09;xTAx&#xff0c;g&#xff08;y1&#xff0c;y2&#xff0c;y3&#xff09;yTBy ①若f在可逆變換xPy下化為g&#xff0c;即P為可逆陣&#xff0c;有P…

Unity 通過鍵盤鼠標控制物體移動、旋轉、縮放的方法

在Unity中&#xff0c;使用鍵盤ADWS鍵控制物體移動&#xff0c;通過鼠標左鍵控制物體旋轉&#xff0c;鼠標中鍵控制物體縮放是再常見不過的方法。 方法如下&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine;public class MoveCo…

數字系統設計(EDA)實驗報告【出租車計價器】

一、問題描述 題目九&#xff1a;出租車計價器設計&#xff08;平臺實現&#xff09;★★ 完成簡易出租車計價器設計&#xff0c;選做停車等待計價功能。 1、基本功能&#xff1a; &#xff08;1&#xff09;起步8元/3km&#xff0c;此后2元/km&#xff1b; &#xff08;2…

紅隊攻防實戰之ThinkPHP-RCE集錦

你若不勇敢&#xff0c;誰又可以替你堅強&#xff1f; ThinkPHP 2.x RCE漏洞 1、查詢phpinfo() 2、任意代碼執行 3、Getshell 蟻劍連接&#xff1a; ThinkPHP5 5.0.23 RCE漏洞 發送數據包&#xff1a; 成功執行id命令&#xff1a; 工具驗證 ThinkPHP5 SQL注入漏洞 &&am…

什么是神經網絡的非線性

大家好啊&#xff0c;我是董董燦。 最近在寫《計算機視覺入門與調優》&#xff08;右鍵&#xff0c;在新窗口中打開鏈接&#xff09;的小冊&#xff0c;其中一部分說到激活函數的時候&#xff0c;談到了神經網絡的非線性問題。 今天就一起來看看&#xff0c;為什么神經網絡需…

cuda函數的前綴作用

文章目錄 cuda函數的前綴作用1、前綴作用2、global3、device4、host cuda函數的前綴作用 1、前綴作用 函數執行環境標識符&#xff0c;即表明函數在哪里被調用 2、global __global__修飾的函數是核函數&#xff0c;這些函數在GPU上執行&#xff0c;但是需要在CPU上調用。 g…

激光打標機在智能手表上的應用:科技與時尚的完美結合

隨著科技的飛速發展&#xff0c;智能手表已經成為我們日常生活中不可或缺的智能設備。而在智能手表制造中&#xff0c;激光打標機扮演著至關重要的角色。本文將詳細介紹激光打標機在智能手表制造中的應用&#xff0c;以及其帶來的優勢和影響。 ? 一、激光打標機在智能手表制…

按訂單周期結算的產品成本

原文地址&#xff1a;Product Cost By Order Cycle | SAP Blogs 產品成本核算是每個制造企業的控制部門的核心職責之一&#xff0c;根據其產品和生產的性質&#xff0c;每個企業的成本核算有所不同。它支持組織在其他職能領域做出大量戰略決策。在過去幾年中獲得了 SAP 產品成本…

Vite4、Vue3、Axios 針對請求模塊化封裝搭配自動化導入(簡單易用)

針對請求模塊化封裝搭配自動化導入&#xff08;簡單易用&#xff09; 目標目錄目標代碼前提步入正題src / utils / index.jssrc /api / index.jssrc /api / request.jssrc /api / service.jssrc /api / utils.jssrc /api / modules / demo.js 自動化配置vite.config.jseslint 校…