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 相关文章推荐
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
jQuery+PHP实现动态数字展示特效
Mar 14 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
微信小程序 获取微信OpenId详解及实例代码
Oct 31 Javascript
详解node.js平台下Express的session与cookie模块包的配置
Apr 26 Javascript
Vue-router 类似Vuex实现组件化开发的示例
Sep 15 Javascript
vuex操作state对象的实例代码
Apr 25 Javascript
详解如何在你的Vue项目配置vux
Jun 04 Javascript
webpack的CSS加载器的使用
Sep 11 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
Nov 26 Javascript
解决layui的table插件无法多层级获取json数据的问题
Sep 19 Javascript
JS如何实现封装列表右滑动删除收藏按钮
Jul 23 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
js仿京东放大镜效果
Aug 09 #Javascript
You might like
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
jquery选择器(常用选择器说明)
2010/09/28 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
Python 文件操作实现代码
2009/10/07 Python
centos系统升级python 2.7.3
2014/07/03 Python
python实现解数独程序代码
2017/04/12 Python
Python实现的堆排序算法示例
2018/04/29 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
平面设计的岗位职责
2013/11/08 职场文书
车间副主任岗位职责
2013/12/24 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
目标管理责任书
2014/04/15 职场文书
学生偷窃检讨书
2014/09/25 职场文书
个人简历求职信范文
2015/03/20 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
高中军训感想
2015/08/07 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技