Mercurial > hg > webaudioevaluationtool
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 } |