@@ -170,6 +170,7 @@ function go(step) {
170
170
ce . style . visibility = 'hidden' ;
171
171
ne . style . visibility = 'visible' ;
172
172
jl . selectedIndex = snum ;
173
+ location . hash = "(" + snum + ")" ;
173
174
currentSlide ( ) ;
174
175
number = 0 ;
175
176
}
@@ -250,7 +251,7 @@ function keys(key) {
250
251
case 13 : // enter
251
252
if ( window . event && isParentOrSelf ( window . event . srcElement , 'controls' ) ) return ;
252
253
if ( key . target && isParentOrSelf ( key . target , 'controls' ) ) return ;
253
- if ( number != undef ) {
254
+ if ( number != undef && number != 0 ) {
254
255
goTo ( number ) ;
255
256
break ;
256
257
}
@@ -278,7 +279,7 @@ function keys(key) {
278
279
}
279
280
break ;
280
281
case 36 : // home
281
- goTo ( 0 ) ;
282
+ // goTo(0);
282
283
break ;
283
284
case 35 : // end
284
285
goTo ( smax - 1 ) ;
@@ -316,12 +317,20 @@ function clicker(e) {
316
317
}
317
318
318
319
function findSlide ( hash ) {
319
- var target = document . getElementById ( hash ) ;
320
- if ( target ) {
321
- for ( var i = 0 ; i < slideIDs . length ; i ++ ) {
322
- if ( target . id == slideIDs [ i ] ) return i ;
323
- }
324
- }
320
+ if ( hash . indexOf ( "(" ) === 0 ) {
321
+ var jumpSlide = hash . replace ( "(" , "" ) . replace ( ")" , "" ) ;
322
+ jumpSlide = parseInt ( jumpSlide ) ;
323
+ if ( jumpSlide > 0 ) {
324
+ return jumpSlide ;
325
+ }
326
+ } else {
327
+ var target = document . getElementById ( hash ) ;
328
+ if ( target ) {
329
+ for ( var i = 0 ; i < slideIDs . length ; i ++ ) {
330
+ if ( target . id == slideIDs [ i ] ) return i ;
331
+ }
332
+ }
333
+ }
325
334
return null ;
326
335
}
327
336
@@ -404,8 +413,8 @@ function createControls() {
404
413
405
414
function fontScale ( ) { // causes layout problems in FireFox that get fixed if browser's Reload is used; same may be true of other Gecko-based browsers
406
415
if ( ! s5mode ) return false ;
407
- var vScale = 22 ; // both yield 32 (after rounding) at 1024x768
408
- var hScale = 32 ; // perhaps should auto-calculate based on theme's declared value?
416
+ var vScale = 23 ; // both yield 32 (after rounding) at 1024x768
417
+ var hScale = 33 ; // perhaps should auto-calculate based on theme's declared value?
409
418
if ( window . innerHeight ) {
410
419
var vSize = window . innerHeight ;
411
420
var hSize = window . innerWidth ;
@@ -550,10 +559,9 @@ function startup() {
550
559
}
551
560
document . onkeyup = keys ;
552
561
document . onkeypress = trap ;
553
- document . onclick = clicker ;
554
- document . oncontextmenu = function ( ) {
555
- go ( - 1 ) ;
556
- return false ;
562
+ // document.onclick = clicker;
563
+ window . onhashchange = function ( ) {
564
+ slideJump ( ) ;
557
565
} ;
558
566
}
559
567
}
0 commit comments