UNPKG

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
<!DOCTYPE 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>