fib*_*ine 1 html javascript jquery jquery-ui jquery-ui-draggable
我将“拖拽”拖到“container1”和“container2”。当它被放下时,“drag”如果在“container1”中则变成深紫色,如果在“container2”中则变成深橙色。
这就是我所拥有的,当它悬停在可放置容器上时,它会改变“拖动”,但当它被放置时它不会改变颜色。任何帮助表示赞赏!谢谢你!
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.container {
width: 50px;
height: 50px;
background: #e9559a;
padding: 13px;
margin: 0 5px 5px 0;
}
.bdrag {
height: 100px;
width: 100px;
background: grey;
padding: 5px;
}
.dark-purple {
background: #8b0000;
}
.dark-orange {
background: #000080
}
.drop-green {
background: #38a53a;
}
.drop-yellow {
background: #fbff23;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-12">
<div class="shape-container">
<div id="origin-container" class="container">
<div id="dragbox" class="bdrag text-dark">
<p>Draggable Box</p>
</div>
</div>
<div id="dcontainer2" class="container">
<p>Can drop in here #1</p>
</div>
<div id="dcontainer1" class="container">
<p>Can drop in here #2</p>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$(function() {
$("#drag-container").draggable({
revert: function(event, ui) {
$(this).data("uiDraggable").originalPosition = {
top: 0,
left: 0
};
return !event;
}
});
$("#dcontainer1").droppable({
accept: '#dragbox'
});
$("#dcontainer2").droppable({
accept: '#dragbox'
});
$( "#dcontainer1" ).droppable({
over: function() {
$("#dragbox").addClass("drop-yellow")
.removeClass("drop-green"); },
drop: function() {
$("#dragbox").addClass("dark-orange")
.removeClass("dark-purple").find("p"); }
});
$( "#dcontainer1" ).droppable({
over: function() {
$("#dragbox").addClass("drop-green")
.removeClass("drop-yellow"); },
drop: function() {
$("#dragbox").addClass("dark-purple")
.removeClass("dark-orange").find("p"); }
});
});
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
由于我没有您的原始 HTML 代码,因此我做了一个简单的示例(只需单击“运行代码”按钮)...
它使用 droppable 事件over并out找出类并将其添加到帮助器中,这样人们就知道什么是 droppable 区域......剩下的只是用于着色的 CSS。
这个想法是,over我们确实知道一切,所以我将实际可放置的内容作为一个类附加id到帮助器中,这样就可以很容易地通过 CSS 修改样式。
$(function() {
$(".draggable").draggable({
helper: "clone",
revert: "invalid"
});
$( ".droppable" ).droppable({
drop: function( event, ui ) {
// dropped
//console.log('drop');
$(this).addClass('dropped');
},
over: function( event, ui ) {
// over droppable
//console.log('over');
ui.helper
.addClass("ui-over")
.addClass($(this).attr('id'));
},
out: function( event, ui ) {
// not over droppable
//console.log('out');
// reset
ui.helper
.removeClass("ui-over")
.removeClass("container1")
.removeClass("container2");
}
});
});Run Code Online (Sandbox Code Playgroud)
.content {
width: 650px;
text-align: center;
margin: 30px auto;
}
ul {
padding: 0;
margin: 0;
list-style: none;
display: flex;
justify-content: space-around;
}
#container1 {
float: left;
}
#container2 {
float: right;
}
/* change color if over it */
#container1.ui-droppable-hover {
background: #38a53a;
}
#container2.ui-droppable-hover {
background: #fbff23;
}
/* change color if being dragged */
.ui-draggable-dragging {
background: #8b0000 !important;
}
/* change color depend on droppable area */
.ui-over.container1 {
background: #ff0 !important;
}
.ui-over.container2 {
background: #0ff !important;
}
#container1.dropped {
border: 5px dashed black !important;
}
#container2.dropped {
border: 5px dashed blue !important;
}
/* your css */
.container {
width: 150px;
height: 100px;
background: #e9559a;
padding: 13px;
margin: 0 5px 5px 0;
border: 5px dashed transparent;
}
.bdrag {
height: 50px;
width: 50px;
background: grey;
padding: 5px;
}
.dark-purple {
background: #8b0000;
}
.dark-orange {
background: #000080
}
.drop-green {
background: #38a53a;
}
.drop-yellow {
background: #fbff23;
}Run Code Online (Sandbox Code Playgroud)
<link href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="content">
<div id="container1" class="container droppable">[ C 1 ]</div>
<div id="container2" class="container droppable">[ C 2 ]</div>
<ul>
<li class="draggable bdrag">[ A ]</li>
<li class="draggable bdrag">[ B ]</li>
<li class="draggable bdrag">[ C ]</li>
<li class="draggable bdrag">[ D ]</li>
</ul>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6098 次 |
| 最近记录: |