【问题标题】:How to make drag drop stay at dropped place after page refresh页面刷新后如何使拖放保持在放置的位置
【发布时间】:2022-01-13 06:55:18
【问题描述】:

谁能帮帮我!

我正在处理拖放和本地存储的任务。 这是我第一次编写涉及本地存储的代码。我在创作 有点像看板。

我现在遇到的问题是,我不知道我该怎么做 使板子中的所有卡片在页面刷新后留在我放置的位置。

这是我目前尝试过的

const todos = document.querySelectorAll(".todo");
const all_status = document.querySelectorAll(".box")


todos.forEach((todo) => {
  todo.addEventListener("dragstart", dragStart);
  todo.addEventListener("dragend", dragEnd);
});

function dragStart() {
  draggableTodo = this;
  setTimeout(() => {
    this.style.display = "none";

  }, 0);
  console.log("dragStart");
}

function dragEnd() {
  draggableTodo = null;
  setTimeout(() => {
    this.style.display = "block";

  }, 0);
  console.log("dragEnd");
}

all_status.forEach((box) => {
  box.addEventListener("dragover", dragOver);
  box.addEventListener("dragenter", dragEnter);
  box.addEventListener("draleave", dragLeave);
  box.addEventListener("drop", dragDrop);
});

function dragOver(e) {
  e.preventDefault();
  //console.log("dragOver");
}

function dragEnter() {
  console.log("dragEnter");
}

function dragLeave() {
  console.log("dragLeave");
}

function dragDrop() {
  this.appendChild(draggableTodo);
  var left = this.offsetLeft;
  var top = this.offsetTop;
  localStorage.setItem("left", left);
  localStorage.setItem("top", top);
  console.log("dropped");
}

也可以查看我的 JSFiddle

JSFiddle

【问题讨论】:

    标签: javascript html jquery drag-and-drop local-storage


    【解决方案1】:

    如果您只想保留一个元素的状态,“left”和“top”就可以了,但您会尝试生成一个定义该元素的键。

    localStorage.setItem("elementAPosition", {left: '10px', top: '5px'})
    

    当您的脚本首先运行时,您可以检查元素位置并设置它们的位置。

    let elementAPos = localStorage.getItem("elementAPosition") //this returns an object with left and top keys.
    elementA.style.left = elementAPos.left
    elementA.style.top = elementAPos.top
    

    【讨论】:

    • 感谢您的回答。如果我希望在页面刷新后我的所有卡都可以保留,我可以使用此代码吗?我的卡需要在 html 部分具有相同的 id。我说的对吗?
    猜你喜欢
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2021-04-17
    • 2013-07-12
    相关资源
    最近更新 更多