[TASK] Add a surrounding container for better drag&drop handling.

This commit is contained in:
Jan Philipp Timme 2013-09-11 15:42:39 +02:00
parent 3a14e8e860
commit 61df99ca7b
3 changed files with 71 additions and 35 deletions

View File

@ -25,7 +25,6 @@
<li><span>Oder mach etwas!</span></li> <li><span>Oder mach etwas!</span></li>
</ol> </ol>
</div> </div>
<div style="padding: 1em; background-color: hsla(0, 0%, 100%, 0.25); border-radius: 5px; color: hsl(0, 0%, 95%); margin-left: 2em; margin-right: 2em; margin-top: 2em; margin-bottom: 1em;"> <div style="padding: 1em; background-color: hsla(0, 0%, 100%, 0.25); border-radius: 5px; color: hsl(0, 0%, 95%); margin-left: 2em; margin-right: 2em; margin-top: 2em; margin-bottom: 1em;">
<div style=""> <div style="">
<h1>Some random stuff maybe a search bar or some fancy info box?</h1> <h1>Some random stuff maybe a search bar or some fancy info box?</h1>
@ -39,47 +38,63 @@
<div style="clear: both;"></div> <div style="clear: both;"></div>
<div id="content-grid-container"> <div id="content-grid-container">
<div id="content-column-1" class="content-column"> <div id="content-column-1" class="content-column">
<div class="content-container"> <div class="content-container-bounding-box">
<h1>Col1</h1> <div class="content-container">
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p> <h1>Col1</h1>
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p>
</div>
</div> </div>
<div class="content-container"> <div class="content-container-bounding-box">
<h1>Irgendne Überschrift ...</h1> <div class="content-container">
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p> <h1>Irgendne Überschrift ...</h1>
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p>
</div>
</div> </div>
</div><!-- content-column-1 --> </div><!-- content-column-1 -->
<div id="content-column-2" class="content-column"> <div id="content-column-2" class="content-column">
<div class="content-container"> <div class="content-container-bounding-box">
<h1>Col2</h1> <div class="content-container">
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p> <h1>Col2</h1>
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p>
</div>
</div> </div>
<div class="content-container"> <div class="content-container-bounding-box">
<h1>Irgendne Überschrift ...</h1> <div class="content-container">
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p> <h1>Irgendne Überschrift ...</h1>
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p>
</div>
</div> </div>
<div class="content-container"> <div class="content-container-bounding-box">
<h1>Irgendne Überschrift ...</h1> <div class="content-container">
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p> <h1>Irgendne Überschrift ...</h1>
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p>
</div>
</div>
<div class="content-container-bounding-box">
<div class="content-container">
<h1>Irgendne Überschrift ...</h1>
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p>
</div>
</div> </div>
<div class="content-container">
<h1>Irgendne Überschrift ...</h1>
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p>
</div>
</div><!-- content-column-2 --> </div><!-- content-column-2 -->
<div id="content-column-3" class="content-column"> <div id="content-column-3" class="content-column">
<div class="content-container"> <div class="content-container-bounding-box">
<h1>Col3</h1> <div class="content-container">
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird. Desoxyribonukleinsäure ist ein wichtiger Bestandteil der Altpapierverwertungszellulosemaschine. Meine Absätze machen Sinn, denn anders geht es eh nicht.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p> <h1>Col3</h1>
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird. Desoxyribonukleinsäure ist ein wichtiger Bestandteil der Altpapierverwertungszellulosemaschine. Meine Absätze machen Sinn, denn anders geht es eh nicht.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p>
</div>
</div> </div>
<div class="content-container"> <div class="content-container-bounding-box">
<h1>Irgendne Überschrift ...</h1> <div class="content-container">
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p> <h1>Irgendne Überschrift ...</h1>
</div> <p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p>
<div class="content-container"> </div>
<h1>Irgendne Überschrift ...</h1> </div>
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p> <div class="content-container-bounding-box">
<div class="content-container">
<h1>Irgendne Überschrift ...</h1>
<p>Hallo!<br>Ich bin ein langweiliger Blindtext damit der Entwickler sehen kann, wie der ganze Kram in etwa mal aussehen wird.<br>Ein paar Sätze pro Absatz und gut ist! ;-)</p><p>Bitte beachte mich nicht weiter, ich war eh nie wirklich wichtig.</p><p>Achja: Ich grüße alle die mich kennen!<br>Macht's gut!</p>
</div>
</div> </div>
</div><!-- content-column-3 --> </div><!-- content-column-3 -->
<div class="clear-both"></div> <div class="clear-both"></div>

View File

@ -1,7 +1,6 @@
$(function() { $(function() {
//setup the draggable content containers //setup the draggable content containers
$(".content-container").draggable({ $(".content-container").draggable({
//"containment": $("#content-grid-container"), //this seems buggy?
"distance": 10, "distance": 10,
"handle": "h1", "handle": "h1",
"helper": "clone", "helper": "clone",
@ -26,6 +25,7 @@ $(function() {
//setup the dropzones //setup the dropzones
$(".content-column").droppable({ $(".content-column").droppable({
"greedy": false,
"scope": "widget", "scope": "widget",
"tolerance": "pointer", "tolerance": "pointer",
"drop": function(event, ui) { "drop": function(event, ui) {
@ -33,7 +33,25 @@ $(function() {
console.log(["drop", event, ui]); console.log(["drop", event, ui]);
}, },
"over": function(event, ui) { "over": function(event, ui) {
$(event.target).css("background-color", "hsla(0, 0%, 100%, 0.4);"); $(event.target).css("background-color", "hsla(0, 100%, 100%, 0.4);");
console.log(["over", event, ui]);
},
"out": function(event, ui) {
$(event.target).css("background-color", "");
console.log(["out", event, ui]);
}
});
$(".content-container-bounding-box").droppable({
"greedy": true,
"scope": "widget",
"tolerance": "pointer",
"drop": function(event, ui) {
$(event.target).css("background-color", "");
console.log(["drop", event, ui]);
},
"over": function(event, ui) {
$(event.target).css("background-color", "hsla(0, 100%, 50%, 0.4);");
console.log(["over", event, ui]); console.log(["over", event, ui]);
}, },
"out": function(event, ui) { "out": function(event, ui) {

View File

@ -70,10 +70,13 @@ h5 { font-size: 11pt; }
margin-bottom: 0em; margin-bottom: 0em;
} }
.content-container-bounding-box {
padding: 1em 1em 2em 1em;
}
.content-container { .content-container {
padding-top: 0.3em; padding-top: 0.3em;
padding-bottom: 0.3em; padding-bottom: 0.3em;
margin: 1em 1em 2em 1em;
color: hsla(0, 0%, 10%, 0.9); color: hsla(0, 0%, 10%, 0.9);
background-color: hsla(0, 0%, 100%, 0.8); background-color: hsla(0, 0%, 100%, 0.8);
border-radius: 5px; border-radius: 5px;