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';
+		}
+	}
+}