parent
734a53b5f1
commit
cfedff4111
@ -0,0 +1,84 @@ |
||||
'use strict' |
||||
var yo = require('yo-yo') |
||||
var csjs = require('csjs-inject') |
||||
var styleGuide = require('./styles-guide/theme-chooser') |
||||
var styles = styleGuide.chooser() |
||||
|
||||
var css = csjs` |
||||
.containerDraggableModal { |
||||
position: absolute; |
||||
z-index: 1000; |
||||
background-color: ${styles.appProperties.quaternary_BackgroundColor}; |
||||
text-align: center; |
||||
width: 500px; |
||||
height: 500px; |
||||
border: 2px solid ${styles.appProperties.solidBorderBox_BorderColor}; |
||||
} |
||||
|
||||
.headerDraggableModal { |
||||
padding: 10px; |
||||
cursor: move; |
||||
z-index: 10; |
||||
color: ${styles.appProperties.mainText_Color}; |
||||
background-color: ${styles.appProperties.quaternary_BackgroundColor}; |
||||
border-bottom: 2px solid ${styles.appProperties.solidBorderBox_BorderColor}; |
||||
} |
||||
` |
||||
|
||||
module.exports = |
||||
class DraggableContent { |
||||
render (title, content) { |
||||
var el = yo` |
||||
<div class=${css.containerDraggableModal} > |
||||
<div class="${css.headerDraggableModal} title">${title}</div> |
||||
${content} |
||||
</div> ` |
||||
dragElement(el) |
||||
el.style.top = '20%' |
||||
el.style.left = '50%' |
||||
this.el = el |
||||
return el |
||||
} |
||||
setTitle (title) { |
||||
this.el.querySelector('.title').innerHTML = title |
||||
} |
||||
} |
||||
|
||||
function dragElement (elmnt) { |
||||
var pos1 = 0 |
||||
var pos2 = 0 |
||||
var pos3 = 0 |
||||
var pos4 = 0 |
||||
|
||||
elmnt.querySelector('.title').onmousedown = dragMouseDown |
||||
|
||||
function dragMouseDown (e) { |
||||
e = e || window.event |
||||
e.preventDefault() |
||||
// get the mouse cursor position at startup:
|
||||
pos3 = e.clientX |
||||
pos4 = e.clientY |
||||
document.onmouseup = closeDragElement |
||||
// call a function whenever the cursor moves:
|
||||
document.onmousemove = elementDrag |
||||
} |
||||
|
||||
function elementDrag (e) { |
||||
e = e || window.event |
||||
e.preventDefault() |
||||
// calculate the new cursor position:
|
||||
pos1 = pos3 - e.clientX |
||||
pos2 = pos4 - e.clientY |
||||
pos3 = e.clientX |
||||
pos4 = e.clientY |
||||
// set the element's new position:
|
||||
elmnt.style.top = (elmnt.offsetTop - pos2) + 'px' |
||||
elmnt.style.left = (elmnt.offsetLeft - pos1) + 'px' |
||||
} |
||||
|
||||
function closeDragElement () { |
||||
/* stop moving when mouse button is released:*/ |
||||
document.onmouseup = null |
||||
document.onmousemove = null |
||||
} |
||||
} |
Loading…
Reference in new issue