【问题标题】:drag and drop when droppable stop change image可拖放时拖放停止更改图像
【发布时间】:2016-05-31 03:55:34
【问题描述】:

我是 jquery 的新手。我希望当我的图标拖放到可放置对象中时,悬停图像在拖放到内部时停止更改图像。我不知道该怎么做。现在每当我悬停并移出它正在改变图像..我想要当有图标时可放置悬停并且只有当悬停内部没有图标时才禁用悬停和输出图像再次工作..

jsFiddle

https://jsfiddle.net/xInfinityMing/tsc0no9g/

Java:

$(function() {
$("#dragIcons img").draggable({
revert: "invalid",
refreshPositions: true,
drag: function(event, ui) {
  ui.helper.removeClass("end-draggable");
  ui.helper.addClass("draggable");
},
stop: function(event, ui) {
  ui.helper.addClass("end-draggable");
  ui.helper.removeClass("draggable");
}
});
$("#briefcase-full").droppable({
  over: function(event, ui) {
  $(this).parent().css('background-image','url("http://icons.iconarchive.com/icons/dtafalonso/yosemite-flat/512/Folder-icon.png")');
  },
  out: function(event, ui) {
  $(this).parent().css('background-image', 'url("https://cdn0.iconfinder.com/data/icons/snow_sabre_silver/512/folder_web_upload.png")');
  },
  drop: function(event, ui) {
  $(this).parent().css('background-image','url("http://icons.iconarchive.com/icons/dtafalonso/yosemite-flat/512/Folder-icon.png")');
  if ($("#briefcase").length == 0) {
    $("#briefcase-droppable").html("");
    }
      ui.draggable.addClass("dropped");
      $("#briefcase-droppable").append(ui.draggable);
    }
  });
});

【问题讨论】:

  • 对不起,我很难理解你的问题。你能告诉我们你想要什么吗?
  • 这是你想要的吗? jsfiddle.net/tsc0no9g/1
  • 是的,类似的!谢谢..但是当droppable里面没有图标时,悬停会起作用吗??
  • 是的...当您第一次尝试拖放时,您会看到这种情况。当您第一次尝试拖放时,内部没有图标..所以悬停并退出工作

标签: javascript jquery html css drag-and-drop


【解决方案1】:

我正在添加一个简单的检查以查找 briefcase-droppable 容器是否已经使用 if(!($("#briefcase-droppable").find(".ui-draggable").length)) 添加了任何图标。

这是一个简单的工作代码

$(function() {
  $("#dragIcons img").draggable({
    revert: "invalid",
    refreshPositions: true,
    drag: function(event, ui) {
      ui.helper.removeClass("end-draggable");
      ui.helper.addClass("draggable");
    },
    stop: function(event, ui) {
      ui.helper.addClass("end-draggable");
      ui.helper.removeClass("draggable");
    }
  });
  $("#briefcase-full").droppable({
    over: function(event, ui) {
      if (!($("#briefcase-droppable").find(".ui-draggable").length)) {
        $(this).parent().css('background-image', 'url("http://icons.iconarchive.com/icons/dtafalonso/yosemite-flat/512/Folder-icon.png")');
      }
    },
    out: function(event, ui) {
      if (!($("#briefcase-droppable").find(".ui-draggable").length)) {

        $(this).parent().css('background-image', 'url("https://cdn0.iconfinder.com/data/icons/snow_sabre_silver/512/folder_web_upload.png")');
      }

    },
    drop: function(event, ui) {
      $(this).parent().css('background-image', 'url("http://icons.iconarchive.com/icons/dtafalonso/yosemite-flat/512/Folder-icon.png")');
      if ($("#briefcase").length == 0) {
        $("#briefcase-droppable").html("");
      }
      ui.draggable.addClass("dropped");
      $("#briefcase-droppable").append(ui.draggable);
    }
  });
});
.draggable {
  filter: alpha(opacity=100);
  opacity: 1.0;
  z-index: 100;
  transition: none !important;
  animation: pulse 0.4s alternate infinite;
}
.end-draggable {
  animation: 0;
}
.dropped {
  position: static !important;
  transition: none !important;
  animation: 0;
}
#dragIcons {
  padding: 5px;
  min-height: 100px;
  width: 500px;
  margin-left: auto;
  margin-right: auto;
}
#briefcase {
  height: 250px;
  width: 250px;
  background: url("http://icons.iconarchive.com/icons/mcdo-design/smooth-leopard/256/Upload-Folder-Blue-icon.png");
  background-position: background-repeat: no-repeat;
  position: absolute;
}
#briefcase-open {
  height: 250px;
  width: 250px;
  margin-left: 300px;
  background: url("https://cdn0.iconfinder.com/data/icons/snow_sabre_silver/512/folder_web_upload.png");
  background-position: background-repeat: no-repeat;
  position: absolute;
}
#briefcase-droppable {
  border-style: solid;
  height: 300px;
  width: 300px;
}
@keyframes pulse {
  100% {
    transform: scale(1.1);
  }
}
#briefcase-full {
  border-style: solid;
  height: 300px;
  width: 300px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.2/jquery-ui.min.js"></script>
<div id="dragIcons">
  <img width="100px" height="100px" src="https://cdn2.iconfinder.com/data/icons/metro-uinvert-dock/256/MS_Office_Upload_Center.png">
  <img width="100px" height="100px" src="https://cdn2.iconfinder.com/data/icons/metro-uinvert-dock/256/MS_Office_Upload_Center.png">
  <img width="100px" height="100px" src="https://cdn2.iconfinder.com/data/icons/metro-uinvert-dock/256/MS_Office_Upload_Center.png">
  <img width="100px" height="100px" src="https://cdn2.iconfinder.com/data/icons/metro-uinvert-dock/256/MS_Office_Upload_Center.png">
</div>
<div id="briefcase">
  <div id="briefcase-full">
  </div>
  <div id="briefcase-droppable">
  </div>
</div>

【讨论】:

    猜你喜欢
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多