一个悬浮的DIV,实现鼠标拖动等功能

div跟随鼠标移动 1.一直跟着鼠标移动的div:原理是div的left和top值有oEvent.clientX+scrollLeft鼠标指针向对于浏览器页面(或客户区)的水平坐标+元素中滚动条的水平偏移 <!DOCTYPE html> <html> <head> <title>follow mouse</title&amp 阅读详情

<html>
<head>
<title>_xWin</title>
<script language=JScript>
<!--
//可以打包为js文件;
var x0=0,y0=0,x1=0,y1=0;
var offx=6,offy=6;
var moveable=false;
var hover='orange',normal='slategray';//color;
var index=10000;//z-index;
var xx;
//开始拖动;
function startDrag(obj)
{
        if(event.button==1)
        {
                //锁定标题栏;
                obj.setCapture();
                //定义对象;
                var win = obj.parentNode;
                var sha = win.nextSibling;
                //记录鼠标和层位置;
                x0 = event.clientX;
                y0 = event.clientY;
                x1 = parseInt(win.style.left);
                y1 = parseInt(win.style.top);
                //记录颜色;
                normal = obj.style.backgroundColor;
                //改变风格;
                obj.style.backgroundColor = hover;
                win.style.borderColor = hover;
                obj.nextSibling.style.color = hover;
                sha.style.left = x1 + offx;
                sha.style.top  = y1 + offy;
                moveable = true;
        }
}
//拖动;
function drag(obj)
{
        if(moveable)
        {
                var win = obj.parentNode;
                var sha = win.nextSibling;
                win.style.left = x1 + event.clientX - x0;
                                sha.style.left = parseInt(win.style.left) + offx;
                                if ((y1 + event.clientY - y0)>0 && (y1 + event.clientY - y0)<600){
                win.style.top  = y1 + event.clientY - y0;
                sha.style.top  = parseInt(win.style.top) + offy;
                }
        }
}
//停止拖动;
function stopDrag(obj)
{
        if(moveable)
        {
                var win = obj.parentNode;
                var sha = win.nextSibling;
                var msg = obj.nextSibling;
                win.style.borderColor     = normal;
                obj.style.backgroundColor = normal;
                msg.style.color           = normal;
                sha.style.left = obj.parentNode.style.left;
                sha.style.top  = obj.parentNode.style.top;
                obj.releaseCapture();
                moveable = false;
        }
}
//获得焦点;
function getFocus(obj)
{
        if(obj.style.zIndex!=index)
        {
                index = index + 2;
                var idx = index;
                obj.style.zIndex=idx;
                obj.nextSibling.style.zIndex=idx-1;
        }
}
//最小化;
function min(obj)
{
        var win = obj.parentNode.parentNode;
        var sha = win.nextSibling;
        var tit = obj.parentNode;
        var msg = tit.nextSibling;
        var flg = msg.style.display=="none";
        if(flg)
        {
                win.style.height  = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;
                sha.style.height  = win.style.height;
                msg.style.display = "block";
                obj.innerHTML = "0";
        }
        else
        {
                win.style.height  = parseInt(tit.style.height) + 2*2;
                sha.style.height  = win.style.height;
                obj.innerHTML = "2";
                msg.style.display = "none";
        }
}
//关闭;
function cls(obj)
{
        var win = obj.parentNode.parentNode.parentNode;
        //var sha = win.nextSibling;
        win.style.visibility = "hidden";
        //sha.style.visibility = "hidden";
}
//显示/隐藏;
function ShowHide()
{
        if (xx!=null)
                        if (xx.style.visibility == "hidden")
                                xx.style.visibility = "visible";
                        else if (xx.style.visibility == "visible")
                                xx.style.visibility = "hidden";
}
//创建一个对象;
function xWin(id,w,h,l,t,tit,msg)
{
        index = index+2;
        this.id      = id;
        this.width   = w;
        this.height  = h;
        this.left    = l;
        this.top     = t;
        this.zIndex  = index;
        this.title   = tit;
        this.message = msg;
        this.obj     = null;
        this.bulid   = bulid;
        this.bulid();
        xx = document.getElementById('allx');
        xx.style.visibility = "visible";

}
//初始化;
function bulid()
{
        var str = ""
                + "<div id='allx'><div id='xMsg'" + this.id + " "
                + "style='"
                + "z-index:" + this.zIndex + ";"
                + "width:" + this.width + ";"
                + "height:" + this.height + ";"
                + "left:" + this.left + ";"
                + "top:" + this.top + ";"
                + "background-color:" + normal + ";"
                + "color:" + normal + ";"
                + "font-size:11px;"
                + "font-family:Verdana;"
                + "position:absolute;"
                + "cursor:default;"
                + "border:2px solid " + normal + ";"
                + "' "
                + "onmousedown='getFocus(this)'>"
                        + "<div "
                        + "style='"
                        + "background-color:" + normal + ";"
                        + "width:" + (this.width) + ";"
                        + "height:20;"
                        + "color:white;"
                        + "' "
                        + "onmousedown='startDrag(this)' "
                        + "onmouseup='stopDrag(this)' "
                        + "onmousemove='drag(this)' "
                        + "ondblclick='min(this.childNodes[1])'"
                        + ">"
                                + "<span style='width:" + (this.width-2*14) + ";padding-left:3px;'>" + this.title + "</span>"
                                + "<span style='width:14;border-width:0px;color:white;font-family:webdings;' onclick='min(this)'>0</span>"
                                + "<span style='width:14;border-width:0px;color:white;font-family:webdings;' onclick='cls(this)'>r</span>"
                        + "</div>"
                                + "<div style='"
                                + "width:100%;"
                                + "height:" + (this.height-20-4) + ";"
                                + "background-color:white;"
                                + "line-height:14px;"
                                + "word-break:break-all;"
                                + "padding:0px;"
                                + "'>" + this.message + "<iframe src='checkBox.html' width=460 scroll='no' style='border-width:0px'></iframe></div>"
                + "</div>"
                + "<div id='xshadow' style='"
                + "width:" + this.width + ";"
                + "height:" + this.height + ";"
                + "top:" + this.top + ";"
                + "left:" + this.left + ";"
                + "z-index:" + (this.zIndex-1) + ";"
                + "position:absolute;"
                + "background-color:black;"
                + "filter:alpha(opacity=40);"
                + "'>by wildwind</div></div>";
        document.getElementById('msgbox').innerHTML = str;
               
               
}
//-->
</script>

<script language='JScript'>
<!--
function initialize()
{
        var a = new xWin("0",460,400,200,200,"效果怎么样!","<br>aaaaaaaaaaaaaaaaaaaaaaaaa");

}
window.onload = initialize;
//-->
</script>
</head>
<body onselectstart='return false' oncontextmenu='return false' scroll='no'>


<DIV class=textSheet
style="BORDER-RIGHT: #3E8529 1px solid; BORDER-TOP: #639517 1px solid; BORDER-LEFT: #3E8529 1px solid; BORDER-BOTTOM: #3E8529 1px solid">

<table width="242" height="160" border="1" ID="Table2">

    <td align="center" valign="middle" style="cursor:hand;font-size:32px;color: #808080"  onMouseMove="bgColor='#ffff99'" onmouseout="bgColor='#FFFFFF'"

onclick="ShowHide()">显示隐藏</td>
</table>
</DIV>
<div id="msgbox"></div>
</body>
</html>

 

vuejs 移动端 实现div拖拽移动 vue 移动端 实现div拖拽移动 本文讲述,在使用VUE的移动端实现类似于iPhone的悬浮窗的效果。 相关知识点 touchstart 当在屏幕上按下手指时触发 touchmove 当在屏幕上移动手指时触发 touchend 当在屏幕上抬起手指时触发 mousedown mousemove mouseup对应的是PC端的事件 touchcancel 当一些更高级别的事件发生的... 阅读详情

相关推荐

vue2 - 实现网页悬浮窗鼠标可拖拽和靠边隐藏功能,可拖拽悬浮球组件示例代码,当靠近屏幕边缘时会磁吸靠近并缩进半隐藏,反之鼠标移入时悬浮球按钮元素会恢复原状态,vue如何实现右侧悬浮并且能拖拽拖动?

vue2,pc端网页,h5移动端,vue实现悬浮窗拖拽和靠边隐藏,vue2实现一个可以随意拖拽的悬浮按钮组件拖动悬浮按钮,实现h5拖拽悬浮挂件附带吸边效果,拖拽磁吸边缘半隐藏,PC端侧边悬浮并且靠边隐藏一半,在页面右上角实现可悬浮/隐藏的系统菜单,vue2飘浮窗实现(屏幕上下左右移动,触壁回弹)v拖拽悬浮组件靠边收起,可拖拽到页面的任何位置,怎么实现右侧悬浮,并且能拖拽的功能,实现可以拖动的悬浮框,拖拽球体贴边隐藏,vue2实现悬浮可拖动且靠近屏幕边缘自动吸附悬挂图标组件,拖动时很卡不流畅解决,Vue2实现

✅ 精选推荐文章 5924

div可视化拖动 随着鼠标拖动div,可以自由拖动

div可视化拖动

zhh_5的博客 1335

vue3 - 实现网页悬浮窗鼠标可拖拽和靠边隐藏功能,可拖拽悬浮球组件示例代码,当靠近屏幕边缘时会磁吸靠近并缩进半隐藏,反之鼠标移入时悬浮球按钮元素会恢复原状态,vue3怎么实现右侧悬浮并且能拖拽拖动

vue3,pc端网页,h5移动端,vue3实现悬浮窗拖拽和靠边隐藏,vue3实现一个可以随意拖拽的悬浮按钮组件拖动悬浮按钮,实现h5拖拽悬浮挂件附带吸边效果,拖拽磁吸边缘半隐藏,PC端侧边悬浮并且靠边隐藏一半,在页面右上角实现可悬浮/隐藏的系统菜单,vue3飘浮窗实现(屏幕上下左右移动,触壁回弹)v拖拽悬浮组件靠边收起,可拖拽到页面的任何位置,怎么实现右侧悬浮,并且能拖拽的功能,实现可以拖动的悬浮框,拖拽球体贴边隐藏,vue3实现悬浮可拖动且靠近屏幕边缘自动吸附悬挂图标组件,拖动时很卡不流畅解决,Vue3实

✅ 精选推荐文章 1万+

创建可移动的悬浮DIV

HTML代码如下: var divObj=null; var pX; var pY; document.onmousemove = divMove; document.onmouseup = divUp; function moveObj(obj){ divObj=document.all(obj); pX

wzq6511的专栏 1367

Windows本地部署Qwen3-14B实战指南:Ollama+Open WebUI零Docker方案

大语言模型本地部署是AI工程化落地的关键环节,其核心在于推理框架兼容性、硬件加速适配性与端到端稳定性。Ollama作为轻量级模型运行时,原生支持Windows DirectML与CUDA,规避了Docker/WSL2虚拟化开销和llama.cpp编译风险;Qwen3-14B则凭借128K上下文、Tool Calling原生支持及中文长文本结构化能力,成为政务、金融等场景首选。本文聚焦Windows平台真实约束——显存阈值、驱动版本匹配、路径编码兼容、离线知识库集成(RAG)等工程细节,提供经63台Windo

weixin_32136203的博客 413

卡尔曼滤波五步拆解:用Excel手推姿态解算全过程

本文通过Excel手推演示,详细拆解了卡尔曼滤波在姿态解算中的五步核心流程。文章以融合陀螺仪与加速度计数据估算角度为例,从状态预测、协方差更新到增益计算,逐步展示如何将抽象的矩阵运算转化为可视化的表格计算,帮助读者直观理解滤波器的“预测-修正”机制,并为算法实现与参数调优提供清晰指导。

hhh00的博客 983

html js设置div可拖动效果

第一种:先看代码,可直接复制使用。 这部分是我找了个例子,看了一遍,自己写的。但是也有一些问题。 问题:js设置div可拖动效果  当我在实际项目中使用时,div里有关闭div的按钮,很多时候点击按钮,关闭事件不触发,反而div会移动。因为该div是js动态生成了,我尝试使用阻止冒泡事件来解决这个问题,但是不起作用。于是换了另一种方式。如下第二种 &lt;!doctype html&gt;...

weixin_40841731的博客 8373

Keil MDK 5.37及之后版本 安装AC5(ARMCC)编译器详细步骤

由于Keil 5.37及之后版本不再默认安装AC5(ARMCC)编译器,这就会导致由AC5编译的工程无法正常编译,往往输出窗口会提示以下信息:*** Target ‘STM32xxxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available.

s_Modesto的博客 1万+

原生js 实现移动端 元素页面拖拽

html <div id="qmkf" > <div> 拖动</div> </div> css #qmkf { border-radius: 50%; position: fixed; z-index: 99; width: 39px; ...

qq_41851047的博客 1062

OpenEarthMap 与 xBD 数据集合并

整合好的数据:链接: https://pan.baidu.com/s/1uJ_Zg6n-s3u1D49OW52D7Q?pwd=2vwx 提取码: 2vwx完整整合步骤与代码如下。

qq_60293814的博客 1596

nRF52382低功耗蓝牙应用开发之入门教程-软件烧录

准备工作在上一篇文章讲过了,这里就讲讲nRFgo studio的使用 硬件准备: J-link:2线 供电:3.3V 如下图打开nRFgo studio界面介绍, 2、如果J-link正常,如下图 3、如果蓝牙芯片正常 4、烧录过程,如果蓝牙芯片之前有烧录过程序,需先点擦除,再点烧录 5、烧录代码路劲,例如 F:\nRF\SDK\nRF5_SDK_15.2.0_...

LinQiPing233的博客 1946

HTML页悬浮div的两种方式

HTML页悬浮div的两种方式,类似固定在某个地方的形式和类似导航栏悬浮的形式,前者一直显示在屏幕上,后者可以再滚动时候再显示出来

u012698249的博客 8万+

基于STM32L4XX的环境光传感器(VCNL4040M3OE)应用程序设计

• 集成模块:红外发射器(IRED)、环境光传感器(ALS)、接近传感器(PS)及信号调理IC。#define VCNL4040_I2C_ADDR (0x60 << 1) // 7位地址左移一位。// 组合成16位值。// I2C总线句柄。// 设置参数:ALS集成时间160ms,中断禁止,ALS功能开启。// 设置参数:PS工作频率80Hz,开红外二极管,PS功能开启。// 初始化I2C外设。• 输出类型:I2C总线(ALS/PS)// 2. 配置环境光传感器 (ALS) 并启动。

myron6688的博客 143

实现可以拖动的悬浮框

实现可以拖动的悬浮框 直接上代码,有注释 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>实现可以拖动的悬浮框</title> <style>

abcquan123的博客 1080

YOLO26 网络结构逐模块解析:Backbone/Neck/Head

本文解析了YOLO26目标检测网络的架构设计,重点介绍其在Backbone、Neck和Head三个核心组件的创新优化。Backbone采用改进的CSP模块与轻量级注意力机制,提升特征提取效率;Neck使用改进的BiFPN结构实现高效多尺度特征融合;Head采用完全解耦设计简化回归流程。文章详细分析了各模块的技术演进、实现细节和设计思想,通过流程图和代码示例展示了YOLO26的整体架构和关键组件实现。该研究对模型优化、定制开发和硬件部署具有重要指导意义。

一键难忘的博客 1248

【教程4>第1章>第12节】通过Verilog读取txt格式数据进行测试并将结果导入到matlab

我们在verilog的testbench中,调用txt文件,将上述正弦样本数据作为测试激励输入到verilog模块中。通过这个方法,可以将一些较为复杂的数据导入到verilog中,进行FPGA数据处理模块的开发。即通过w方式打开一个新的txt文件,然后将verilog的输出保存到XY1.txt文件中。这个部分是txt文件的路径,实际使用时,修改为您自己的路径,或者将txt文件放在和我一样的路径中。这个是数据长度,matlab产生的txt多少长度,这个参数就修改为多少长度。这个txt就是保存这段数据的文件。

FPGA/MATLAB学习教程/源码/项目合作开发 1383

vue实现拖动悬浮框

<template> <div> <div class="drift" @touchstart="dragStart" @touchmove="dragMove" @touchend="dragEnd"> <div><img src="../assets/img/homeimg1.png" @click="toTop"...

qq_37465264的博客 2905

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JS制作DIV悬浮窗与悬浮窗拖拽

     //-------------------------------------------------------------------这里只是吐槽!~------------------------------------------------------------------   啊哈,这是第一次来博客园里写博客喃。当然也是我的第一篇博客啦= =!很有纪念意义。。...

adsl4977的博客 931

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VUE PC端可拖动悬浮按钮改进

之前发过一篇悬浮球的,但是那个不太好用,鼠标移动过快会脱标,就很难受,最近又改了一下,这是加了个监听,拖动结束的时候改变top和left,应该还能改进,欢迎大佬们提出意见。VUE PC端可拖动悬浮按钮改进。

A7536的博客 1975

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

React 使用onMouseDown、onMouseMove、onMouseUp完美实现悬浮球拖动

近期需要做一个全局的小助手,类似于360加速球的效果,在网页中就需要组件的拖动。但是使用onDrag实现拖动,需要设置放置的容器,否则拖动时会出现禁止标志,很难受。所以想着给组件加上鼠标事件,通过鼠标事件来改变组件的绝对位置实现拖动。 1.实现组件的拖动 import React, { useRef, useEffect, useState } from 'react'; const onMouseDown = (ref, setDraggable) => (e) => { // 记录鼠

qq_44229380的博客 8701

兼容移动端/PC端悬浮模块拖动效果

JS简单实现兼容移动端/PC端悬浮模块的拖动效果 后端程序员进攻前端啦,有个可拖动悬浮按钮需求,做个笔录。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>兼容移动端/PC端悬浮模块拖动效果</title> &l...

Mr_DouDo的博客 1994

H5页面悬浮球,可拖动

H5页面悬浮球,可拖动 $(document).ready(function() { //设置样式 $("body").css({"margin":0,"padding":0}); $(".homepage-btn").css({//初始化HOME图标到屏幕右上角 "left":($(window).width()-$(".homepage-btn").width()-10) + "px" , "top":"85%" }) setTimeout('$(".homepage-b

2414

打造新Web体验:如何在Vue 2项目中实现可拖动定位的悬浮按钮(代码版)

在现代的前端开发中,悬浮按钮广泛应用于各种场景。本文将介绍如何在 Vue 2 项目中实现一个固定在屏幕右侧、可垂直拖动的悬浮按钮。按钮拖动后会自动固定在屏幕的右侧,避免按钮超出屏幕范围,并配合抽屉组件实现快捷菜单功能。

weixin_45408984的博客 2945

可以拖动的悬浮窗

style{ .show { display: none; background: transparent; text-align: center; position: absolute; z-index: 2; width: 770px; height: 500px; } .title { background: #C0C0C0; width: 77...

f303153041的专栏 578

VUE PC端可拖动悬浮按钮导航菜单

最近遇到的奇葩需求,客户要在管理系统中加一个快捷导航,是个悬浮按钮,本身用若依做的,那左边导航栏不好用吗=-=,不过客户有需求,我们就得做啊,然后就在网上找了个改了一下。

A7536的博客 3604

JS实现鼠标点击拖动窗口方法

点击窗口

sanlerina_123的专栏 1283
上一篇: oracle数据库的备份与还原(本地及远程操作)
下一篇: model实体类中hibernate注解
rainVSjava
博客等级 码龄15年 1粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值