javascript - 如何存储/检索元素移动的最后位置?

标签 javascript html css local-storage

目前我正在使用这段代码:

var mousePosition;
var offset = [0,0];
var div;

var isDown = false;

div = document.createElement("div");
div.style.position = "absolute";
div.style.left = "0px";  
div.style.top = "0px";
div.style.width = "237px";
div.style.height = "50px";
div.style.background = "red";
div.style.padding = "15px 0px 0px 0px";
div.style.color = "blue";
div.id = "clock";

document.body.appendChild(div);


div.addEventListener('mousedown', function(e) {
isDown = true;
offset = [
    div.offsetLeft - e.clientX,
    div.offsetTop - e.clientY
];
}, true);

document.addEventListener('mouseup', function() {
isDown = false;
}, true);


document.addEventListener('mousemove', function(event) {
event.preventDefault();
if (isDown) {
    mousePosition = {

        x : event.clientX,
        y : event.clientY

    };
    div.style.left = (mousePosition.x + offset[0]) + 'px';
    div.style.top  = (mousePosition.y + offset[1]) + 'px';
    }
}, true);

该代码允许我使用鼠标移动一个 div。我对 JavaScript 不是很有经验。

但我希望有一种简单的方法来缓存 Div 的结束位置。这样当我关闭并打开 HTML 文件时,Div 将从其最后缓存的位置开始。

谢谢。

最佳答案

您可以使用 localStorage将位置信息缓存到您的浏览器中。

window.localStorage.setItem('divPosition', JSON.stringify({
  left: div.style.left, 
  top: div.style.top
}));

console.log(JSON.parse(window.localStorage.getItem('divPosition')));

需要注意的是,localStorage 不可靠地接受字符串值以外的任何内容,因此添加更可靠的信息需要对数据进行字符串化和解析。

关于javascript - 如何存储/检索元素移动的最后位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54817397/

相关文章:

python - Django 模板扩展不调用 CSS

javascript - 如何让 Protractor 等待触发的 promise 来解决?

JavaScript audio.play() 错误

javascript - 类型错误 : Cannot read property 'mytext' of undefined in angularjs

javascript - 使用reduce 将数组转换为对象数组

html - 指定主体 CSS 宽度是否安全?

HTML 签名仅在 Outlook 中调整部分图像的大小

javascript - Google Analytics 'not set' 值作为浏览器版本?

jquery - 隐藏的 Div 在通过 jQuery 显示时流入标题(仅在 IE 中发生)

javascript - 检测用户是否在输入字段中输入字符串值或数字