You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
353 lines
8.0 KiB
353 lines
8.0 KiB
/* ------------------------------------------------------------------------------ |
|
* |
|
* # jQuery UI interactions |
|
* |
|
* Specific JS code additions for jqueryui_interactions.html page |
|
* |
|
* Version: 1.0 |
|
* Latest update: Nov 12, 2015 |
|
* |
|
* ---------------------------------------------------------------------------- */ |
|
|
|
$(function() { |
|
|
|
|
|
// Draggable |
|
// ------------------------- |
|
|
|
// Basic setup |
|
$(".draggable-element").draggable({ |
|
containment: "#draggable-default-container" |
|
}); |
|
|
|
|
|
// |
|
// Constrain movement |
|
// |
|
|
|
// Both |
|
$("#draggable-move-both").draggable({ |
|
containment: "#draggable-containment-container" |
|
}); |
|
|
|
// Vertical |
|
$("#draggable-move-vertical").draggable({ |
|
containment: "#draggable-containment-container", |
|
axis: "y" |
|
}); |
|
|
|
// Horizontal |
|
$("#draggable-move-horizontal").draggable({ |
|
containment: "#draggable-containment-container", |
|
axis: "x" |
|
}); |
|
|
|
|
|
// |
|
// Revert position |
|
// |
|
|
|
// Element |
|
$("#draggable-revert-element").draggable({ |
|
containment: "#draggable-revert-container", |
|
revert: true |
|
}); |
|
|
|
// Clone helper |
|
$("#draggable-revert-clone").draggable({ |
|
containment: "#draggable-revert-container", |
|
revert: true, |
|
helper: "clone" |
|
}); |
|
|
|
// Speed |
|
$("#draggable-revert-speed").draggable({ |
|
containment: "#draggable-revert-container", |
|
revert: true, |
|
revertDuration: 1500 |
|
}); |
|
|
|
|
|
// |
|
// Cursors |
|
// |
|
|
|
// Move cursor |
|
$("#draggable-cursor-move").draggable({ |
|
containment: "#draggable-cursor-container", |
|
cursor: "move" |
|
}); |
|
|
|
// Crosshair cursor |
|
$( "#draggable-cursor-crosshair" ).draggable({ |
|
containment: "#draggable-cursor-container", |
|
cursor: "crosshair" |
|
}); |
|
|
|
// Bottom cursor |
|
$( "#draggable-cursor-bottom" ).draggable({ |
|
containment: "#draggable-cursor-container", |
|
cursorAt: { |
|
bottom: 0 |
|
} |
|
}); |
|
|
|
|
|
// |
|
// Handles |
|
// |
|
|
|
// Text |
|
$( "#draggable-handle-text" ).draggable({ |
|
containment: "#draggable-handle-container", |
|
handle: "span" |
|
}); |
|
|
|
// Icon |
|
$( "#draggable-handle-icon" ).draggable({ |
|
containment: "#draggable-handle-container", |
|
handle: ".handle-icon" |
|
}); |
|
|
|
// Exception |
|
$( "#draggable-handle-exception" ).draggable({ |
|
containment: "#draggable-handle-container", |
|
cancel: "span" |
|
}); |
|
|
|
|
|
// |
|
// Events |
|
// |
|
|
|
// Define elements |
|
var $start_counter = $("#draggable-event-start"), |
|
$drag_counter = $("#draggable-event-drag"), |
|
$stop_counter = $("#draggable-event-stop"), |
|
counts = [0, 0, 0]; |
|
|
|
|
|
// Start event |
|
$start_counter.draggable({ |
|
containment: "#draggable-events-container", |
|
start: function() { |
|
counts[0]++; |
|
updateCounterStatus( $start_counter, counts[0]); |
|
} |
|
}); |
|
|
|
// Drag event |
|
$drag_counter.draggable({ |
|
containment: "#draggable-events-container", |
|
drag: function() { |
|
counts[1]++; |
|
updateCounterStatus($drag_counter, counts[1]); |
|
} |
|
}); |
|
|
|
// Stop event |
|
$stop_counter.draggable({ |
|
containment: "#draggable-events-container", |
|
stop: function() { |
|
counts[2]++; |
|
updateCounterStatus($stop_counter, counts[2]); |
|
} |
|
}); |
|
|
|
// Update counter text |
|
function updateCounterStatus( $event_counter, new_count ) { |
|
$( ".event-count", $event_counter ).text( new_count ); |
|
} |
|
|
|
|
|
|
|
// Droppable |
|
// ------------------------- |
|
|
|
// |
|
// Basic functionality |
|
// |
|
|
|
// Drag |
|
$("#droppable-basic-element").draggable({ |
|
containment: "#droppable-basic-container" |
|
}); |
|
|
|
// Drop |
|
$("#droppable-basic-target").droppable({ |
|
drop: function(event, ui) { |
|
$(this).addClass("bg-success-400 border-success-400 text-white").html("<span>Dropped!</span>"); |
|
} |
|
}); |
|
|
|
|
|
// |
|
// Accept drop |
|
// |
|
|
|
// Drag |
|
$("#droppable-accept-yes, #droppable-accept-no").draggable({ |
|
containment: "#droppable-accept-container" |
|
}); |
|
|
|
// Drop |
|
$("#droppable-accept-target").droppable({ |
|
accept: "#droppable-accept-yes", |
|
drop: function(event, ui) { |
|
$(this).addClass("bg-success-400 border-success-400 text-white").html("<span>Dropped!</span>"); |
|
} |
|
}); |
|
|
|
|
|
// |
|
// Revert draggable position |
|
// |
|
|
|
// Drag (revert on drop) |
|
$("#droppable-revert-drop").draggable({ |
|
containment: "#droppable-revert-container", |
|
revert: "valid" |
|
}); |
|
|
|
// Drag (revert always except drop) |
|
$("#droppable-revert-except").draggable({ |
|
containment: "#droppable-revert-container", |
|
revert: "invalid" |
|
}); |
|
|
|
// Drop |
|
$("#droppable-revert-target").droppable({ |
|
drop: function(event, ui) { |
|
$(this).addClass("bg-success-400 border-success-400 text-white").html("<span>Dropped!</span>"); |
|
} |
|
}); |
|
|
|
|
|
// |
|
// Visual feedback |
|
// |
|
|
|
// Drag |
|
$("#droppable-visual-element").draggable({ |
|
containment: "#droppable-visual-container" |
|
}); |
|
|
|
// Active drop |
|
$("#droppable-visual-target-active").droppable({ |
|
containment: '#droppable-visual-container', |
|
accept: "#droppable-visual-element", |
|
activeClass: "bg-slate border-slate text-white", |
|
drop: function(event, ui) { |
|
$(this).addClass("bg-success-400 border-success-400 text-white").html("<span>Dropped!</span>"); |
|
} |
|
}); |
|
|
|
// Hover drop |
|
$("#droppable-visual-target-hover").droppable({ |
|
containment: '#droppable-visual-container', |
|
hoverClass: "bg-blue border-blue text-white", |
|
drop: function(event, ui) { |
|
$(this).addClass("bg-teal-400 border-teal-400 text-white").html("<span>Dropped!</span>"); |
|
} |
|
}); |
|
|
|
|
|
|
|
// Resizable |
|
// ------------------------- |
|
|
|
// Basic functionality |
|
$("#resizable-basic-element").resizable({ |
|
minWidth: 50, |
|
minHeight: 50 |
|
}); |
|
|
|
// Animated resize |
|
$("#resizable-animate-element").resizable({ |
|
minWidth: 50, |
|
minHeight: 50, |
|
animate: true |
|
}); |
|
|
|
// Preserve aspect ratio |
|
$("#resizable-ratio-element").resizable({ |
|
minWidth: 50, |
|
minHeight: 50, |
|
aspectRatio: 16 / 9 |
|
}); |
|
|
|
// Synchronous resize |
|
$("#resizable-sync-element1").resizable({ |
|
minWidth: 50, |
|
minHeight: 50, |
|
alsoResize: "#resizable-sync-element2" |
|
}); |
|
$("#resizable-sync-element2").resizable({ |
|
minWidth: 50, |
|
minHeight: 50, |
|
alsoResize: "#resizable-sync-element1" |
|
}); |
|
|
|
|
|
|
|
// Selectable |
|
// ------------------------- |
|
|
|
// Basic functionality |
|
$("#selectable-basic").selectable(); |
|
|
|
// Serialize |
|
$("#selectable-serialize").selectable({ |
|
stop: function() { |
|
var result = $("#select-result").empty(); |
|
$(".ui-selected", this).each(function() { |
|
var index = $("#selectable-serialize li").index(this); |
|
result.append(" #" + (index + 1)); |
|
}); |
|
} |
|
}); |
|
|
|
|
|
|
|
// Sortable |
|
// ------------------------- |
|
|
|
// Basic functionality |
|
$("#sortable-list-basic").sortable(); |
|
$("#sortable-list-basic").disableSelection(); |
|
|
|
|
|
// Placeholder |
|
$( "#sortable-list-placeholder" ).sortable({ |
|
placeholder: "sortable-placeholder", |
|
start: function(e, ui){ |
|
ui.placeholder.height(ui.item.outerHeight()); |
|
} |
|
}); |
|
$( "#sortable-list-placeholder" ).disableSelection(); |
|
|
|
|
|
// Connected lists |
|
$("#sortable-list-first, #sortable-list-second").sortable({ |
|
connectWith: ".selectable-demo-connected" |
|
}).disableSelection(); |
|
|
|
|
|
// |
|
// Include/exclude items |
|
// |
|
|
|
// Specify sort items |
|
$("#sortable-list-specify").sortable({ |
|
items: "li:not(.ui-state-disabled)" |
|
}); |
|
|
|
// Exclude items |
|
$("#sortable-list-cancel").sortable({ |
|
cancel: ".ui-state-disabled" |
|
}); |
|
|
|
// Disable selections |
|
$("#sortable-list-specify li, #sortable-list-cancel li").disableSelection(); |
|
|
|
});
|
|
|