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函数
Sep 08 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
Jul 04 Javascript
php与js的区别是什么
Aug 05 Javascript
js的2种继承方式详解
Mar 04 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
Jul 06 Javascript
js判断数组key是否存在(不用循环)的简单实例
Aug 03 Javascript
ionic实现滑动的三种方式
Aug 27 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
Nov 26 Javascript
jQuery中值得注意的trigger方法浅析
Dec 12 Javascript
一个小时快速搭建微信小程序的方法步骤
Apr 15 Javascript
node.js使用yargs处理命令行参数操作示例
Feb 11 Javascript
微信小程序实现导航栏和内容上下联动功能代码
Jun 29 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.NET的入门教程
2006/10/09 PHP
php 文章调用类代码
2011/08/11 PHP
YII中assets的使用示例
2014/07/31 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
15 个 JavaScript Web UI 库
2010/05/19 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
DOM事件探秘篇
2017/02/15 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
python实现SOM算法
2018/02/23 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
python批量爬取下载抖音视频
2019/06/17 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
财务人员个人自荐信范文
2013/09/26 职场文书
我的动漫时代的创业计划书范文
2014/01/27 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
个人授权委托书
2014/04/03 职场文书
预备党员党支部意见
2015/06/02 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL