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 相关文章推荐
javascript fullscreen全屏实现代码
Apr 09 Javascript
jQuery中选择器小问题(新人难免遇到)
Mar 31 Javascript
Javascript中对象继承的实现小例
May 12 Javascript
关闭页面window.location事件未执行的原因及解决方法
Sep 01 Javascript
通过jquery实现页面的动画效果(实例代码)
Sep 18 Javascript
Java与JavaScript中判断两字符串是否相等的区别
Mar 13 Javascript
微信小程序 input输入及动态设置按钮的实现
Oct 27 Javascript
JavaScript设计模式之命令模式实例分析
Jan 16 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 Javascript
react PropTypes校验传递的值操作示例
Apr 28 Javascript
JavaScript canvas实现流星特效
May 20 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
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
关于php几种字符串连接的效率比较(详解)
2017/02/22 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
ASP中Sub和Function的区别说明
2020/08/30 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
ajax请求get与post的区别总结
2013/11/04 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
Python IDLE清空窗口的实例
2018/06/25 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
python解包用法详解
2021/02/17 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
夜大毕业生自我评价分享
2013/11/10 职场文书
策划助理岗位职责
2013/11/18 职场文书
中医专业职业生涯规划书范文
2014/01/04 职场文书
优秀党员主要事迹
2014/01/19 职场文书
大学生秋游活动方案
2014/02/17 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
服务宗旨标语
2014/07/01 职场文书
护士自荐信怎么写
2015/03/06 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书