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模板来展现json数据的代码
Oct 22 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
Sep 17 Javascript
通过javascript获取iframe里的值示例代码
Jun 24 Javascript
js数组操作学习总结
Nov 04 Javascript
javascript定义类和类的实现实例详解
Dec 01 Javascript
深入理解JS DOM事件机制
Aug 06 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
webpack 1.x升级过程中的踩坑总结大全
Aug 09 Javascript
html中通过JS获取JSON数据并加载的方法
Nov 30 Javascript
实例解析Vue.js下载方式及基本概念
May 11 Javascript
vue 实现数字滚动增加效果的实例代码
Jul 06 Javascript
AJAX实现指定部分页面刷新效果
Oct 16 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基础知识:控制结构
2006/12/13 PHP
PHP HTML代码串截取代码
2008/12/29 PHP
由php的call_user_func传reference引发的思考
2010/07/23 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
PHP学习笔记之session
2018/05/06 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
JQUERY操作JSON实例代码
2010/02/09 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
[01:52]PWL S2开团时刻第四期——DOTA2成语故事
2020/12/03 DOTA
Python脚本实现代码行数统计代码分享
2015/03/10 Python
微信跳一跳python代码实现
2018/01/05 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
pybind11在Windows下的使用教程
2019/07/04 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
eBay奥地利站:eBay.at
2019/07/24 全球购物
旅游与酒店管理专业求职信
2014/07/21 职场文书
领导干部保密承诺书
2014/08/30 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
六五普法宣传标语
2014/10/06 职场文书
学习普通话的体会
2014/11/07 职场文书
龙门石窟导游词
2015/02/02 职场文书
单位考核聘任报告
2015/03/02 职场文书
导游词之天津古文化街
2019/11/09 职场文书
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers