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 相关文章推荐
use jscript Create a SQL Server database
Jun 16 Javascript
JavaScript 比较时间大小的代码
Apr 24 Javascript
五个jQuery图片画廊插件 推荐
May 12 Javascript
Knockout数组(observable)使用详解示例
Nov 15 Javascript
js实现select跳转功能代码
Oct 22 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
May 07 Javascript
jQuery手风琴的简单制作
May 12 jQuery
vue组件 $children,$refs,$parent的使用详解
Jul 31 Javascript
微信小程序三级联动选择器使用方法
May 19 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
Apr 27 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
Aug 13 Javascript
vue使用require.context实现动态注册路由
Dec 25 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
php中关于普通表单多文件上传的处理方法
2011/03/25 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
PHP实现单例模式最安全的做法
2014/06/13 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
jQuery实现带动画效果的二级下拉导航方法
2015/03/11 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
Django组件cookie与session的具体使用
2019/06/05 Python
python 整数越界问题详解
2019/06/27 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
python实现画循环圆
2019/11/23 Python
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
中学生运动会入场词
2014/02/12 职场文书
党风廉政承诺书
2014/03/27 职场文书
简单租房协议书
2014/04/09 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS