Mercurial > hg > webaudioevaluationtool
changeset 5:4766f485a1b0
Added track slider objects with draggable interface.
author | Nicholas Jillings <nicholas.jillings@eecs.qmul.ac.uk> |
---|---|
date | Tue, 24 Mar 2015 15:02:15 +0000 |
parents | 1aa6962238c3 |
children | 8d9fd0ba13e3 |
files | ape.js |
diffstat | 1 files changed, 37 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/ape.js Tue Mar 10 11:44:15 2015 +0000 +++ b/ape.js Tue Mar 24 15:02:15 2015 +0000 @@ -45,14 +45,15 @@ sliderBox.id = 'sliderCanvasHolder'; // create an id so we can easily link to it later sliderBox.align = 'center'; - var canvas = document.createElement('canvas'); + var canvas = document.createElement('div'); canvas.id = 'slider'; - canvas.width = width - 100; - canvas.height = 150; + canvas.style.width = width - 100 +"px"; + canvas.style.height = 150 + "px"; + canvas.style.marginBottom = "25px" canvas.style.backgroundColor = '#eee'; - + canvas.align = "left"; sliderBox.appendChild(canvas); - + var feedbackHolder = document.createElement('div'); var tracksXML = xmlDoc.find('track'); @@ -68,6 +69,24 @@ feedbackHolder.appendChild(trackTitle); feedbackHolder.appendChild(trackComment); feedbackHolder.appendChild(trackObj); + // Create a slider per track + + var trackSliderObj = document.createElement('div'); + trackSliderObj.className = 'track-slider'; + trackSliderObj.id = 'track-slider-'+index; + trackSliderObj.style.position = 'absolute'; + // Distribute it randomnly + var w = window.innerWidth - 100; + w = Math.random()*w; + trackSliderObj.style.left = Math.floor(w)+50+'px'; + trackSliderObj.style.height = "150px"; + trackSliderObj.style.width = "10px"; + trackSliderObj.style.backgroundColor = 'rgb(100,200,100)'; + trackSliderObj.innerHTML = '<span>'+index+'</span>'; + trackSliderObj.style.float = "left"; + trackSliderObj.draggable = true; + trackSliderObj.ondragend = dragEnd; + canvas.appendChild(trackSliderObj); }) @@ -77,3 +96,16 @@ insertPoint.appendChild(sliderBox); insertPoint.appendChild(feedbackHolder); } + +function dragEnd(ev) { + // Function call when a div has been dropped + if (ev.x >= 50 && ev.x < window.innerWidth-50) { + this.style.left = (ev.x)+'px'; + } else { + if (ev.x<50) { + this.style.left = '50px'; + } else { + this.style.left = window.innerWidth-50 + 'px'; + } + } +}