javascript设置鼠标(JavaScript实现鼠标控制自由移动的窗口)
类别:编程学习 浏览量:1545
时间:2021-10-23 10:21:56 javascript设置鼠标
JavaScript实现鼠标控制自由移动的窗口本文实例为大家分享了JavaScript实现鼠标控制自由窗口的具体代码,供大家参考,具体内容如下
代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>用鼠标移动的窗口</title> <style> .mainli { width: 350px; height: 200px; border: 2px black solid; position: absolute; } .titleli { width: 350px; height: 30px; background-color: YellowGreen ; text-align: center; line-height: 30px; } .contentli { width: 350px; height: 170px; background-color: SandyBrown ; text-align: center; } </style> </head> <body> <!--onmousedown:事件会在鼠标按键被按下时发生; onmousemove:事件会在鼠标指针移到指定的对象时发生--> <li class="mainli" id="mainli" style="top: 20px;left: 20px"> <li class="titleli" id="titleli" onmousedown="mouseDown()" onmouseup="mouseUp()"> 标题栏 </li> <li class="contentli"> 《鼠标可控的自由窗口》<br> 注意:没有给mainli设置position为absolute前不能移动 </li> </li> <script> var dx; var dy; var mainliObj = null; var titleliObj = null; /** * 鼠标按下函数,当鼠标按下时执行该函数 */ function mouseDown() { //获得鼠标的键值,0是鼠标左键;1是鼠标滚轴键;2是鼠标右键 if (event.button == 0) { mainliObj = document.getElementById("mainli"); titleliObj = document.getElementById("titleli"); //设置鼠标样式 titleliObj.style.cursor = "move"; //设置主li的阴影样式 mainliObj.style.boxShadow = "0px 0px 10px #000"; //获得鼠标当前坐标 let x = event.x; let y = event.y; dx = x - parseInt(mainliObj.style.left); dy = y - parseInt(mainliObj.style.top); } } //鼠标移动的时候调用 document.onmousemove = mouseMove; /** * 按下鼠标后移动函数,当鼠标移动是执行该函数,移动li */ function mouseMove() { if (mainliObj != null) { //获得鼠标当前移动的坐标位置 let x = event.x;//鼠标移动的x轴的坐标 let y = event.y;//鼠标移动的y轴的坐标 //计算li移动后的left与top的距离 //使用当前坐标减去鼠标在li中的位置与li左边与顶端的距离 let left = x - dx; let top = y - dy; //设置li新的坐标位置 mainliObj.style.left = left + "px"; mainliObj.style.top = top + "px"; } } /** * 鼠标松开函数,当鼠标松开时执行该函数 */ function mouseUp() { if (mainliObj != null) { dx = null; dy = null; //设置li的阴影样式 mainliObj.style.boxShadow="none"; mainliObj = null; titleliObj.style.cursor="pointer"; titleliObj = null; } } </script> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- angularjs使用指令(详解Angular路由动画及高阶动画函数)
- js弹出新窗口被拦截的解决方法
- pythonjson格式化原理(详解pythonstr与json类型转换)
- js怎么上传压缩图片(如何用JS有效的压缩图片)
- extjs中treepanel属性和方法
- html5长图拖动(html5 拖拽及用 js 实现拖拽功能的示例代码)
- python3json序列化(Python3.5 Json与pickle实现数据序列化与反序列化操作示例)
- jsonkeyvalue怎么取(替换json对象中的key最佳方案)
- js如何解决iphone异形屏适配(Html5适配iphoneX刘海屏的简单实现)
- lazyload延迟加载有什么影响(利用原生JS实现懒加载lazyLoad的三种方法总结)
- php抽奖功能(php+lottery.js实现九宫格抽奖功能)
- js时间变成日期格式(js日期时间格式化的方法实例)
- dede友情链接改为logo轮播教程(dedecms广告生成JS文件和JS调用-DEDE广告优化)
- vue可以使用jsx语法吗(vue中正确使用jsx语法的姿势分享)
- java上传图片压缩包(js实现多张图片打包成zip)
- 用js做一个计算器(使用JS实现简易计算器)
- 臭名昭著的731部队最高负责人 石井四郎(臭名昭著的731部队最高负责人)
- 王牌部队,你看的剧情我看的时尚(你看的剧情我看的时尚)
- 被鉴定的古董价值300万 当心,你可能遇到诈骗了(被鉴定的古董价值300万)
- 英语难学吗(初中英语难学吗)
- 如何追女孩子(如何追女孩子的技巧和方法)
- 是不是快乐全被你拿走了(而是你得到的)
热门推荐
- vmwareftp怎么用(Windows Azure VM上配置FTP服务器)
- mysql锁机制及原理(MySQL锁阻塞的深入分析)
- 使用mui制作页面案例(Yii框架页面渲染操作实例详解)
- 利用前端做扫雷游戏(js实现经典扫雷游戏)
- 云服务器定时重启(云服务器无法正常关机/重启的几种原因)
- python爬虫经典步骤(详解python爬虫系列之初识爬虫)
- css有三种基本的定位机制(10个非常实用的CSS hack技术)
- vsftpd详细配置(vsftpd匿名用户上传和下载的配置方法)
- css3所有动画(CSS3常见动画的实现方式)
- python中encode中文自定义编码(详解Python解决抓取内容乱码问题decode和encode解码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9