JS for the Index.html WebFrontend
This commit is contained in:
parent
82ef4170cb
commit
4962678776
114
Docs/WebFrontend/Slides.js
Normal file
114
Docs/WebFrontend/Slides.js
Normal file
@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Open Source Routing Machine (OSRM) - Web (GUI) Interface
|
||||
* Copyright (C) Pascal Neis, 2011
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU AFFERO General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* or see http://www.gnu.org/licenses/agpl.txt.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Title: Slide.js
|
||||
* Description: Fixme
|
||||
*
|
||||
* @author Pascal Neis, pascal@neis-one.org
|
||||
* @version 0.1 2011-05-15
|
||||
*/
|
||||
|
||||
var timerlen = 5;
|
||||
var slideAniLen = 250;
|
||||
|
||||
var timerID = new Array();
|
||||
var startTime = new Array();
|
||||
var obj = new Array();
|
||||
var endWidth = new Array();
|
||||
var moving = new Array();
|
||||
var dir = new Array();
|
||||
|
||||
function toggleSlide(objname){
|
||||
document.getElementById('panzoombar').style.top="25px";
|
||||
document.getElementById('panzoombar').style.display = "none";
|
||||
document.getElementById('slide').style.display = "none";
|
||||
if(document.getElementById(objname).style.display == "none"){
|
||||
// div is hidden, so let's slide right
|
||||
slide_right(objname);
|
||||
}else{
|
||||
// div is not hidden, so slide left
|
||||
slide_left(objname);
|
||||
}
|
||||
}
|
||||
|
||||
function slide_right(objname){
|
||||
if(moving[objname]){ return; }
|
||||
if(document.getElementById(objname).style.display != "none"){
|
||||
return; // cannot slide right something that is already visible
|
||||
}
|
||||
moving[objname] = true; dir[objname] = "right"; startslide(objname);
|
||||
}
|
||||
|
||||
function slide_left(objname){
|
||||
if(moving[objname]){ return; }
|
||||
if(document.getElementById(objname).style.display == "none"){
|
||||
return; // cannot slide left something that is already hidden
|
||||
}
|
||||
moving[objname] = true; dir[objname] = "left"; startslide(objname);
|
||||
}
|
||||
|
||||
function startslide(objname){
|
||||
obj[objname] = document.getElementById(objname);
|
||||
endWidth[objname] = parseInt(obj[objname].style.width);
|
||||
startTime[objname] = (new Date()).getTime();
|
||||
if(dir[objname] == "right"){ obj[objname].style.width = "1px"; }
|
||||
obj[objname].style.display = "block";
|
||||
timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
|
||||
}
|
||||
|
||||
function slidetick(objname){
|
||||
var elapsed = (new Date()).getTime() - startTime[objname];
|
||||
if (elapsed > slideAniLen){ endSlide(objname); }
|
||||
else {
|
||||
var d = Math.round(elapsed / slideAniLen * endWidth[objname]);
|
||||
if(dir[objname] == "left"){ d = endWidth[objname] - d; }
|
||||
obj[objname].style.width = d + "px";
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function endSlide(objname){
|
||||
clearInterval(timerID[objname]);
|
||||
|
||||
if(dir[objname] == "left"){
|
||||
obj[objname].style.display = "none";
|
||||
document.getElementById('panzoombar').style.left="25px";
|
||||
document.getElementById('panzoombar').style.display = "";
|
||||
document.getElementById('slide').style.left="5px";
|
||||
document.getElementById('slide').innerHTML = "<a class=\"btn-slide\" href=\"javascript:;\" onmousedown=\"toggleSlide('data');\">>></a>";
|
||||
document.getElementById('slide').style.display = "";
|
||||
}
|
||||
else{
|
||||
document.getElementById('panzoombar').style.left="400px";
|
||||
document.getElementById('panzoombar').style.display = "";document.getElementById('slide').style.left="365px";
|
||||
document.getElementById('slide').innerHTML = "<a class=\"btn-slide\" href=\"javascript:;\" onmousedown=\"toggleSlide('data');\"><<</a>";
|
||||
document.getElementById('slide').style.display = "";
|
||||
}
|
||||
obj[objname].style.width = endWidth[objname] + "px";
|
||||
|
||||
delete(moving[objname]);
|
||||
delete(timerID[objname]);
|
||||
delete(startTime[objname]);
|
||||
delete(endWidth[objname]);
|
||||
delete(obj[objname]);
|
||||
delete(dir[objname]);
|
||||
return;
|
||||
}
|
Loading…
Reference in New Issue
Block a user