js实现盒子拖拽动画效果


Posted in Javascript onAugust 09, 2020

本文实例为大家分享了js实现盒子拖拽动画的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="zh-CN">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="jquery.js"></script>
 <style>
 * {
  margin: 0;
  padding: 0;
 }
 .wrap {
  width: 400px;
  height: 200px;
  border: 1px solid #ccc;
  border-right-color: red;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -200px;
  margin-top: -100px;
  box-sizing: border-box;
 }
 .wrap .head {
  height: 40px;
  padding-left: 4px;
  padding-right: 4px;
  background-color: #ccc;
  box-sizing: border-box;
  line-height: 40px;
  user-select: none;
 }
 .head:hover {
  cursor: move;
 }
 .head span {
  float: left;
 }
 #close {
  float: right;
 }
 #close:hover {
  cursor: pointer;
 }
 </style>
</head>
<body>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <p>tom</p>
 <div class="wrap">
 <div class="head">
  <span>试着拖拽我</span>
  <span id="close">【关闭】</span>
 </div>
 </div>
 <script>
 let wrap = document.querySelector('.wrap');
 let close = document.getElementById('close');
 let head = document.querySelector('.head');

 head.onmousedown = function (e) {
  // 获得鼠标在 head 中的坐标 
  let x = e.pageX - wrap.offsetLeft;
  let y = e.pageY - wrap.offsetTop;
  console.log(x, y);
  document.onmousemove = function (e) {
  
  let xx = e.pageX - x;
  let yy = e.pageY - y;
  // 设置边界限制
  xx = xx < 0 ? 0 : xx;
  yy = yy < 0 ? 0 : yy;
  if (xx >= innerWidth - wrap.offsetWidth) {
   document.documentElement.scrollLeft = 20;
  } else {
   document.documentElement.scrollLeft = 0;
  }
  xx = xx > innerWidth - wrap.offsetWidth ? innerWidth-wrap.offsetWidth : xx; 
  yy = yy > innerHeight - wrap.offsetHeight + document.documentElement.scrollTop ? innerHeight - wrap.offsetHeight + document.documentElement.scrollTop : yy;
  wrap.style.left = xx + 'px';
  wrap.style.top = yy + 'px';
  // 禁止X滚动轴
  document.body.style.overflowX = 'hidden';
  wrap.style.marginLeft = 0;
  wrap.style.marginTop = 0;
  };
 };

 document.onmouseup = function () {
  document.onmousemove = null;
 };

 close.onclick = function () {
  wrap.style.display = 'none';
 };
 </script>
</body>
</html>

实现效果:

js实现盒子拖拽动画效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 操作XML入门
Dec 25 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
May 22 Javascript
SuperSlide2实现图片滚动特效
Jun 20 Javascript
JS实现控制表格行内容垂直对齐的方法
Mar 30 Javascript
AngularJS入门心得之directive和controller通信过程
Jan 25 Javascript
第三章之Bootstrap 表格与按钮功能
Apr 25 Javascript
基于JS实现的随机数字抽签实例
Dec 08 Javascript
jQuery简单判断值是否存在于数组中的方法示例
Apr 17 jQuery
JavaScript生成一个不重复的ID的方法示例
Sep 16 Javascript
用Golang运行JavaScript的实现示例
Nov 25 Javascript
js+canvas实现刮刮奖功能
Sep 13 Javascript
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 Vue.js
js实现盒子移动动画效果
Aug 09 #Javascript
js实现弹窗效果
Aug 09 #Javascript
js实现表格数据搜索
Aug 09 #Javascript
js实现微信聊天界面
Aug 09 #Javascript
js实现微信聊天效果
Aug 09 #Javascript
js实现盒子滚动动画效果
Aug 09 #Javascript
js仿京东放大镜效果
Aug 09 #Javascript
You might like
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
JavaScript版代码高亮
2006/06/26 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
js实现一个简易计算器
2020/03/30 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python读写配置文件的方法
2015/06/03 Python
Python抓取手机号归属地信息示例代码
2016/11/28 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
美国电视购物HSN官网:HSN
2016/09/07 全球购物
美国创意之家:BulbHead
2017/07/12 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
《只有一个地球》教学反思
2014/02/14 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
走进毛泽东观后感
2015/06/04 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang
Pandas自定义选项option设置
2021/07/25 Python
MySQL连接控制插件介绍
2021/09/25 MySQL
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers
nginx之queue的具体使用
2022/06/28 Servers