git-svn-id: https://192.168.0.254/svn/Proyectos.Imagen2_Web/trunk@5 056bb6a8-4245-f846-8d49-f6344928e438
72 lines
3.3 KiB
JavaScript
72 lines
3.3 KiB
JavaScript
|
|
|
|
// ==============================================================
|
|
// HANDLES SCROLLER/S
|
|
// Modified from Aaron Boodman http://webapp.youngpup.net/?request=/components/ypSimpleScroll.xml
|
|
// mixed ypSimpleScroll with dom-drag script and allowed multiple scrolelrs through array instances
|
|
// (c)2004 Sergi Meseguer (http://zigotica.com/), 04/2004:
|
|
// ==============================================================
|
|
var theHandle = []; var theRoot = []; var theThumb = []; var theScroll = []; var thumbTravel = []; var ratio = [];
|
|
|
|
function instantiateScroller(count, id, left, top, width, height, speed){
|
|
if(document.getElementById) {
|
|
theScroll[count] = new ypSimpleScroll(id, left, top, width, height, speed);
|
|
}
|
|
}
|
|
|
|
function createDragger(count, handler, root, thumb, minX, maxX, minY, maxY){
|
|
var buttons = '<div class="up" id="up'+count+'"><a href="#" onmouseover="theScroll['+count+'].scrollNorth(\''+count+'\')" onmouseout="theScroll['+count+'].endScroll()" onclick="return false;"><img src="imgs/ico_subir.gif" width="15" height="15"></a></div><div class="dn" id="dn'+count+'""><a href="#" onmouseover="theScroll['+count+'].scrollSouth(\''+count+'\')" onmouseout="theScroll['+count+'].endScroll()" onclick="return false;"><img src="imgs/ico_bajar.gif" width="15" height="15"></a></div><div class="thumb" id="'+thumb+'" style="left: 135px; top: 15px;"><img src="imgs/ico_posicion.gif" width="15" height="15"></div>';
|
|
|
|
document.getElementById(root).innerHTML = buttons + document.getElementById(root).innerHTML;
|
|
|
|
theRoot[count] = document.getElementById(root);
|
|
theThumb[count] = document.getElementById(thumb);
|
|
var thisup = document.getElementById("up"+count);
|
|
var thisdn = document.getElementById("dn"+count);
|
|
theThumb[count].style.left = parseInt(minX+1) + "px";
|
|
thisup.style.left = parseInt(minX+1) + "px";
|
|
thisdn.style.left = parseInt(minX+1) + "px";
|
|
theThumb[count].style.border =0;
|
|
theThumb[count].style.top = parseInt(minY) + "px";
|
|
thisup.style.top = 0 + "px";
|
|
thisdn.style.top = parseInt(minY+maxY) + "px";
|
|
//thisdn.style.top = 15 + "px";
|
|
|
|
theScroll[count].load();
|
|
|
|
//Drag.init(theHandle[count], theRoot[count]); //not draggable on screen
|
|
Drag.init(theThumb[count], null, minX+1, maxX+1, minY, maxY);
|
|
|
|
// the number of pixels the thumb can travel vertically (max - min)
|
|
thumbTravel[count] = theThumb[count].maxY - theThumb[count].minY;
|
|
|
|
// the ratio between scroller movement and thumbMovement
|
|
ratio[count] = theScroll[count].scrollH / thumbTravel[count];
|
|
|
|
theThumb[count].onDrag = function(x, y) {
|
|
theScroll[count].jumpTo(null, Math.round((y - theThumb[count].minY) * ratio[count]));
|
|
}
|
|
}
|
|
|
|
// INITIALIZER:
|
|
// ==============================================================
|
|
// ala Simon Willison http://simon.incutio.com/archive/2004/05/26/addLoadEvent
|
|
function addLoadEvent(fn) {
|
|
var old = window.onload;
|
|
if (typeof window.onload != 'function') {
|
|
window.onload = fn;
|
|
}
|
|
else {
|
|
window.onload = function() {
|
|
old();
|
|
fn();
|
|
}
|
|
}
|
|
}
|
|
addLoadEvent(function(){
|
|
if(theScroll.length>0) {
|
|
for(var i=0;i<theScroll.length;i++){
|
|
createDragger(i, "handle"+i, "root"+i, "thumb"+i, theScroll[i].clipW, theScroll[i].clipW, 5, theScroll[i].clipH-30);
|
|
}
|
|
}
|
|
})
|