# HG changeset patch # User Nicholas Jillings # Date 1427209335 0 # Node ID f704bb857beb089fbc99e9b93e3f97d14ca88b41 # Parent 9611107f03be9a5b3a3c887dac6bdb15d22f25fc Added track slider objects with draggable interface. diff -r 9611107f03be -r f704bb857beb ape.js --- 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 = ''+index+''; + 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'; + } + } +}