<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .box{ 100px; height: 100px; background: red; position: absolute; left: 0; top: 0; } </style> <!-- 封装一个cookie 封装我放到末尾--> <script src="../cookie/cookie.js"></script> </head> <body> <div class="box"></div> <script> class Grate{ constructor(){ //绑定事件 this.ele = document.querySelector(".box"); //设置this 指向,解决this拿不到正确对象问题 this.m =this.move.bind(this); this.u =this.up.bind(this); this.addEvent(); this.getCookie(); } getCookie(){ //页面开或刷新时,判断Cookie是否有存储位置,没有设置为左上角 var obj=getCookie("obj") ? JSON.parse(getCookie("obj")):{left:0,right:0}; // console.log(obj) this.ele.style.left= obj.left +"px"; this.ele.style.top= obj.top +"px"; } addEvent(){ //设置事件监听 this.ele.addEventListener("mousedown",this.down.bind(this)); } down(eve){ //绑定事件,触发事件 this.downE = eve || window.event; document.addEventListener("mousemove",this.m); document.addEventListener("mouseup",this.u); } move(eve){ //拖拽 // console.log(this); var e = eve ||window.event; this.ele.style.left = e.clientX - this.downE.offsetX +"px"; this.ele.style.top = e.clientY -this.downE.offsetY +"px"; } up(){ //鼠标抬起,解除绑定 // console.log(this); document.removeEventListener("mousemove",this.m); document.removeEventListener("mouseup",this.u); this.setDate(); } setDate(){ //存储数据 //console.log(this.ele.offsetLeft); let obj = { left:this.ele.offsetLeft, top:this.ele.offsetTop, }; console.log(obj); setCookie("obj",JSON.stringify(obj)); } } new Grate(); </script> <script> //存 function setCookie(key,val,ops){ ops = ops ||{}; let exp=""; if(ops.expires){ let d =new Date(); d.setDate(d.getDate()+ops.expires); exp=`;expires=`+d; } let p =ops.path ? ";path=" +ops.path :""; document.cookie =`${key}=${val}`+p+exp; } //取 function getCookie(key){ let arr = document.cookie.split("; "); for(let i=0;i<arr.length;i++){ if(arr[i].split("=")[0] === key){ return arr[i].split("=")[1]; } } return ""; } //删 function removeCookie(key,ops){ ops = ops || {}; ops.expires = -1; setCookie(key,"1",ops) } </script> </body> </html>