jqwidgets-scripts-custom
Version:
jQWidgets is an advanced jQuery, Angular 7, Vue, React, ASP .NET MVC, Custom Elements and HTML5 UI framework.
118 lines (103 loc) • 4.41 kB
HTML
<html lang="en">
<head>
<title id='Description'>Custom Element DragDrop Events</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1 minimum-scale=1" />
<meta name="description" content="This is an example of the events in Custom Elements DragDrop." />
<link rel="stylesheet" href="../../../jqwidgets/styles/jqx.base.css" type="text/css" />
<link rel="stylesheet" href="../../../styles/demos.css" type="text/css" />
<script type="text/javascript" src="../../../scripts/webcomponents-lite.min.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcore.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxcore.elements.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxpanel.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxscrollbar.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxbuttons.js"></script>
<script type="text/javascript" src="../../../jqwidgets/jqxdragdrop.js"></script>
<script type="text/javascript" src="../../../scripts/demos.js"></script>
<style type="text/css">
.row {
padding: 1px;
}
.draggable {
border: 1px solid #bbb;
background-color: #C9ECFF;
width: 100px;
height: 100px;
left: 30px;
top: 50px;
padding: 5px;
z-index: 2;
}
#draggable-parent {
background-color: #eeffee;
width: 350px;
height: 350px;
text-align: center;
border: 1px solid #eee;
float: left;
}
.events {
float: left;
margin-left: 10px;
font-family: Tahoma;
font-size: 13px;
}
.label {
position: relative;
font-family: Verdana;
font-size: 11px;
color: #000;
}
.drop-target {
background-color: #FBFFB5;
width: 150px;
height: 150px;
border: 1px solid #ddd;
margin-left: 190px;
margin-top: 70px;
z-index: 1;
}
</style>
<script type="text/javascript">
JQXElements.settings['dragDropSettings'] =
{
restricter: 'parent', dropTarget: '.drop-target'
};
window.onload = function() {
var myDragDrop = document.querySelector('jqx-drag-drop');
var myPanel = document.querySelector('jqx-panel');
function() {
var labels = document.querySelectorAll('.label');
for (var i = 0; i < labels.length; i++) {
var parentHeight = labels[i].parentElement.offsetHeight;
var elementheight = labels[i].clientHeight;
var top = (parentHeight - elementheight) / 2;
labels[i].style.top = top + 'px';
}
};
var addEvent = (type, position) => {
var left = position.left.toString().substring(0, 2).replace(/\./g, '').replace(/\-/g, '');
var top = position.top.toString().substring(0, 2).replace(/\./g, '').replace(/\-/g, '');
myPanel.prepend(`<div class="row">Event: ${type}, (${left}, ${top})</div>`);
};
var events = ['dragStart', 'dragEnd', 'dropTargetEnter', 'dropTargetLeave'];
events.map(eventName => myDragDrop.addEventListener(eventName, event => addEvent(event.type, event.args.position)));
};
</script>
</head>
<body>
<div class="example-description">
This is an example of the events that occur in Custom Element DragDrop.
</div>
<div id="draggable-parent">
<jqx-drag-drop class="draggable" settings="dragDropSettings">
<div class="label">I can be dragged only inside my parent</div>
</jqx-drag-drop>
<div class="drop-target">
<div class="label">I am a drop target</div>
</div>
</div>
<jqx-panel class="events"></jqx-panel>
</body>
</html>