OLD | NEW |
| (Empty) |
1 <!DOCTYPE HTML> | |
2 <html i18n-values="dir:textdirection;"> | |
3 <head> | |
4 <meta charset="utf-8"> | |
5 <title>Slideshow</title> | |
6 <style> | |
7 | |
8 body { | |
9 overflow: hidden; | |
10 background: black; | |
11 } | |
12 | |
13 #glow { | |
14 left: 0; | |
15 right: 0; | |
16 bottom: 30px; | |
17 height: 8px; | |
18 opacity: .4; | |
19 position: absolute; | |
20 background: -webkit-linear-gradient(transparent, white); | |
21 } | |
22 | |
23 #main { | |
24 position: absolute; | |
25 left: 0; | |
26 right:0; | |
27 top: 0; | |
28 bottom: 30px; | |
29 overflow: hidden; | |
30 } | |
31 | |
32 #playercontrols { | |
33 bottom: 0; | |
34 left: 0; | |
35 z-index: 999; | |
36 height: 30px; | |
37 opacity: .9; | |
38 right: 0; | |
39 align:center; | |
40 -webkit-box-align: center; | |
41 -webkit-box-pack: center; | |
42 display: -webkit-box; | |
43 position: absolute; | |
44 background: -webkit-linear-gradient(#323232, #070707); | |
45 } | |
46 | |
47 #prevbutton > div { | |
48 background: url('shared/images/mediaplayer_prev.png'); | |
49 background-repeat: no-repeat; | |
50 background-position: 4px 8px; | |
51 width: 100%; | |
52 height: 30px; | |
53 z-index: 9999; | |
54 } | |
55 | |
56 .currentpicture { | |
57 width: 100%; | |
58 height: 100%; | |
59 position: absolute; | |
60 top: 0; | |
61 -webkit-transition-property: left; | |
62 -webkit-transition-duration: 1s; | |
63 display: -webkit-box; | |
64 -webkit-box-align: center; | |
65 -webkit-box-pack: center; | |
66 pointer-events: none; | |
67 } | |
68 | |
69 .comingfromleft { | |
70 left: -100%; | |
71 } | |
72 | |
73 .comingfromright { | |
74 left: 100%; | |
75 } | |
76 | |
77 #nextbutton > div { | |
78 background: url('shared/images/mediaplayer_next.png'); | |
79 background-repeat: no-repeat; | |
80 background-position: 4px 8px; | |
81 width: 100%; | |
82 height: 30px; | |
83 z-index: 9999; | |
84 } | |
85 | |
86 button { | |
87 z-index: 9999; | |
88 cursor: pointer; | |
89 width: 28px; | |
90 height: 30px; | |
91 webkit-appearance: none; | |
92 padding: 0; | |
93 border: 0; | |
94 background: transparent; | |
95 } | |
96 | |
97 button:hover { | |
98 background: -webkit-linear-gradient(#6a7eac, #000000); | |
99 } | |
100 | |
101 </style> | |
102 <script src="shared/js/local_strings.js"></script> | |
103 <script src="shared/js/media_common.js"></script> | |
104 <script> | |
105 | |
106 document.addEventListener('DOMContentLoaded', load); | |
107 | |
108 document.onselectstart = function(e) { | |
109 e.preventDefault(); | |
110 }; | |
111 | |
112 function $(o) { | |
113 return document.getElementById(o); | |
114 } | |
115 | |
116 /////////////////////////////////////////////////////////////////////////////// | |
117 // Document Functions: | |
118 | |
119 var currentPicture = null; | |
120 var prevPicture = null; | |
121 var currentFileOffset = 0; | |
122 var filelist; | |
123 var moveRight = false; | |
124 var lastimg = null; | |
125 | |
126 function loadedPicture() { | |
127 if (prevPicture) { | |
128 if (moveRight) { | |
129 prevPicture.style.left = '-100%'; | |
130 } else { | |
131 prevPicture.style.left = '100%'; | |
132 } | |
133 } | |
134 if (window.innerHeight < lastimg.height || | |
135 window.innerWidth < lastimg.width) { | |
136 if (lastimg.width > lastimg.height) { | |
137 lastimg.style.height = 'auto'; | |
138 lastimg.style.width = '100%'; | |
139 } else { | |
140 lastimg.style.width = 'auto'; | |
141 lastimg.style.height = '100%'; | |
142 } | |
143 } | |
144 setTimeout(function() { | |
145 currentPicture.style.left = '0'; | |
146 }, 10); | |
147 } | |
148 | |
149 function transitionTo(path, fromTheRight) { | |
150 if (currentPicture) { | |
151 if (prevPicture) { | |
152 $('main').removeChild(prevPicture); | |
153 } | |
154 prevPicture = currentPicture; | |
155 } | |
156 | |
157 currentPicture = document.createElement('div'); | |
158 | |
159 $('main').appendChild(currentPicture); | |
160 if (fromTheRight) { | |
161 currentPicture.className = 'currentpicture comingfromright'; | |
162 } else { | |
163 currentPicture.className = 'currentpicture comingfromleft'; | |
164 } | |
165 var image = document.createElement('img'); | |
166 lastimg = image; | |
167 image.onload = loadedPicture; | |
168 image.onerror = loadedPicture; | |
169 document.location.hash = path; | |
170 image.src = 'file://' + path; | |
171 currentPicture.appendChild(image); | |
172 moveRight = fromTheRight; | |
173 } | |
174 | |
175 function browseFileResult(info, results) { | |
176 filelist = results; | |
177 if (info.currentOffset) { | |
178 currentFileOffset = info.currentOffset; | |
179 } else { | |
180 currentFileOffset = 0; | |
181 } | |
182 transitionTo(filelist[currentFileOffset].path, true); | |
183 } | |
184 | |
185 function keyPressed(e) { | |
186 // Left Pressed | |
187 if (e.keyCode == 37) { | |
188 if (currentFileOffset > 0) { | |
189 currentFileOffset--; | |
190 transitionTo(filelist[currentFileOffset].path, false); | |
191 } | |
192 } | |
193 // Right Pressed | |
194 if (e.keyCode == 39) { | |
195 if (currentFileOffset < (filelist.length - 1)) { | |
196 currentFileOffset++; | |
197 transitionTo(filelist[currentFileOffset].path, true); | |
198 } | |
199 } | |
200 } | |
201 | |
202 function load() { | |
203 localStrings = new LocalStrings(); | |
204 | |
205 document.onkeydown = keyPressed; | |
206 if (document.location.href.indexOf('#') != -1) { | |
207 var currentpathArray = document.location.href.split('#'); | |
208 var path = currentpathArray[1]; | |
209 chrome.send('getChildren', [path]); | |
210 } | |
211 } | |
212 | |
213 function prevButtonClick() { | |
214 if (currentFileOffset > 0) { | |
215 currentFileOffset--; | |
216 transitionTo(filelist[currentFileOffset].path, false); | |
217 } | |
218 } | |
219 | |
220 function nextButtonClick() { | |
221 if (currentFileOffset < (filelist.length - 1)) { | |
222 currentFileOffset++; | |
223 transitionTo(filelist[currentFileOffset].path, true); | |
224 } | |
225 } | |
226 | |
227 function toggleFullscreen() { | |
228 chrome.send('toggleFullscreen', ['']); | |
229 } | |
230 | |
231 </script> | |
232 <body> | |
233 <div id="main"></div> | |
234 <div id="glow"></div> | |
235 <div id="playercontrols"> | |
236 <button id="prevbutton" onclick="prevButtonClick()"> | |
237 <div></div> | |
238 </button> | |
239 <button id="nextbutton" onclick="nextButtonClick()"> | |
240 <div></div> | |
241 </button> | |
242 </div> | |
243 </body> | |
244 </html> | |
OLD | NEW |