comparison ape.js @ 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 1b01b7443a46
children 6a6272b06d34
comparison
equal deleted inserted replaced
4:1aa6962238c3 5:4766f485a1b0
43 var sliderBox = document.createElement('div'); 43 var sliderBox = document.createElement('div');
44 sliderBox.className = 'sliderCanvasDiv'; 44 sliderBox.className = 'sliderCanvasDiv';
45 sliderBox.id = 'sliderCanvasHolder'; // create an id so we can easily link to it later 45 sliderBox.id = 'sliderCanvasHolder'; // create an id so we can easily link to it later
46 sliderBox.align = 'center'; 46 sliderBox.align = 'center';
47 47
48 var canvas = document.createElement('canvas'); 48 var canvas = document.createElement('div');
49 canvas.id = 'slider'; 49 canvas.id = 'slider';
50 canvas.width = width - 100; 50 canvas.style.width = width - 100 +"px";
51 canvas.height = 150; 51 canvas.style.height = 150 + "px";
52 canvas.style.marginBottom = "25px"
52 canvas.style.backgroundColor = '#eee'; 53 canvas.style.backgroundColor = '#eee';
53 54 canvas.align = "left";
54 sliderBox.appendChild(canvas); 55 sliderBox.appendChild(canvas);
55 56
56 var feedbackHolder = document.createElement('div'); 57 var feedbackHolder = document.createElement('div');
57 58
58 var tracksXML = xmlDoc.find('track'); 59 var tracksXML = xmlDoc.find('track');
59 tracksXML.each(function(index,element){ 60 tracksXML.each(function(index,element){
60 var trackObj = document.createElement('div'); 61 var trackObj = document.createElement('div');
66 trackComment.name = 'trackComment'+index; 67 trackComment.name = 'trackComment'+index;
67 trackComment.className = 'trackComment'; 68 trackComment.className = 'trackComment';
68 feedbackHolder.appendChild(trackTitle); 69 feedbackHolder.appendChild(trackTitle);
69 feedbackHolder.appendChild(trackComment); 70 feedbackHolder.appendChild(trackComment);
70 feedbackHolder.appendChild(trackObj); 71 feedbackHolder.appendChild(trackObj);
72 // Create a slider per track
73
74 var trackSliderObj = document.createElement('div');
75 trackSliderObj.className = 'track-slider';
76 trackSliderObj.id = 'track-slider-'+index;
77 trackSliderObj.style.position = 'absolute';
78 // Distribute it randomnly
79 var w = window.innerWidth - 100;
80 w = Math.random()*w;
81 trackSliderObj.style.left = Math.floor(w)+50+'px';
82 trackSliderObj.style.height = "150px";
83 trackSliderObj.style.width = "10px";
84 trackSliderObj.style.backgroundColor = 'rgb(100,200,100)';
85 trackSliderObj.innerHTML = '<span>'+index+'</span>';
86 trackSliderObj.style.float = "left";
87 trackSliderObj.draggable = true;
88 trackSliderObj.ondragend = dragEnd;
89 canvas.appendChild(trackSliderObj);
71 }) 90 })
72 91
73 92
74 // Inject into HTML 93 // Inject into HTML
75 insertPoint.innerHTML = null; // Clear the current schema 94 insertPoint.innerHTML = null; // Clear the current schema
76 insertPoint.appendChild(title); // Insert the title 95 insertPoint.appendChild(title); // Insert the title
77 insertPoint.appendChild(sliderBox); 96 insertPoint.appendChild(sliderBox);
78 insertPoint.appendChild(feedbackHolder); 97 insertPoint.appendChild(feedbackHolder);
79 } 98 }
99
100 function dragEnd(ev) {
101 // Function call when a div has been dropped
102 if (ev.x >= 50 && ev.x < window.innerWidth-50) {
103 this.style.left = (ev.x)+'px';
104 } else {
105 if (ev.x<50) {
106 this.style.left = '50px';
107 } else {
108 this.style.left = window.innerWidth-50 + 'px';
109 }
110 }
111 }