Hilfe bei Script
Chriz
- javascript
Hi!
Ich habe ein recht nützliches Script zum Scrollen von Layern gefunden.
Es funktioniert auch wunderbar, aber leider hat es keine Positionsbegrenzung. Sieht jemand von Euch eine Möglichkeit diese irgendwo einzubauen?
function flevSlideDiv() { // v2.0, Marja Ribbers-de Vroed, FlevOOware
if (arguments.length < 4) {return;}
var sD = arguments[0]; if (sD == "") {return;}
var oD = eval("MM_findObj('" + sD + "')"); if (oD == null) {return;}
var iNX = parseInt(arguments[1]), iNY = parseInt(arguments[2]), iS = parseInt(arguments[3]);
var iPx = (arguments.length > 4) ? parseInt(arguments[4]) : 0;
var iR = (arguments.length > 5) ? parseInt(arguments[5]) : 0;
var iT = 10, sS = ""; if (!document.layers) {oD = oD.style;}
if (oD.tT != null) {clearTimeout(oD.tT);}
var iCX = parseInt(oD.left), iCY = parseInt(oD.top);
if (iR != 0) { // relative
if (iR == 1) {iNX = iCX - iNX; iNY = iCY;} // left
else if (iR == 2) {iNX = iCX + iNX; iNY = iCY;} // right
else if (iR == 3) {iNY = iCY - iNY; iNX = iCX;} // up
else {iNY = iCY + iNY; iNX = iCX;} // down
}
var iX = iNX, iY = iNY;
if ((iCX != iNX) || (iCY != iNY)) {
if (iPx > 0) { iT = iS;
var iPxX = iPx, iPxY = iPx, iMX = Math.abs(iCX - iNX), iMY = Math.abs(iCY - iNY);
if (iMX < iMY) {iPxY = (iMX != 0) ? ((iMY/iMX)*iPx) : iPx;}
else {iPxX = (iMY != 0) ? ((iMX/iMY)*iPx) : iPx;}
if (iPxX >= iMX) {iPxX = Math.min(Math.ceil(iPxX), iPx);}
if (iPxY >= iMY) {iPxY = Math.min(Math.ceil(iPxY), iPx);}
if ((iCX < iNX) && (iCX + iPxX < iNX)) {iNX = iCX + iPxX;}
if ((iCX > iNX) && (iCX - iPxX > iNX)) {iNX = iCX - iPxX;}
if ((iCY < iNY) && (iCY + iPxY < iNY)) {iNY = iCY + iPxY;}
if ((iCY > iNY) && (iCY - iPxY > iNY)) {iNY = iCY - iPxY;}
}
else {
var iMX = ((iNX - iCX) / iS);
iMX = (iMX > 0) ? Math.ceil(iMX) : Math.floor(iMX);
iNX = iCX + iMX;
var iMY = ((iNY - iCY) / iS);
iMY = (iMY > 0) ? Math.ceil(iMY) : Math.floor(iMY);
iNY = iCY + iMY;
}
if ((parseInt(navigator.appVersion)>4 || navigator.userAgent.indexOf("MSIE")>-1) && (!window.opera)) {sS="px";}
if (iMX != 0) {eval("oD.left = '" + iNX + sS + "'");}
if (iMY != 0) {eval("oD.top = '" + iNY + sS + "'");}
var sFunction = "flevSlideDiv('" + sD + "'," + iX + "," + iY + "," + iS + "," + iPx + ",0)";
oD.tT = setTimeout(sFunction,iT);
}
}
oD.top ist bspw. die Variable für die Höhe des Layer. Nun müßte es doch möglich sein dem Script zu sagen:
if(oD.top>0 || oD.top<400){
// dann führe Scroll aus
}
else
{
// nix da...
}
...aber ich finde den Einsprung dafür nicht :(
Das Script wird mit onMouseDown="flevSlideDiv('history',0,80,20,6,4)"
aufgerufen.
Weiß jemand Rat?
Chriz!
Hallo Chriz!
Eigentlich bin ich ja ein hilfsbereiter Mensch - aber manchmal komme ich mir auch gepflanzt vor. Ich würde vorschlagen, du fragst mal
// v2.0, Marja Ribbers-de Vroed, FlevOOware
mfg
norbert =:-)
Hallo Chriz!
Eigentlich bin ich ja ein hilfsbereiter Mensch - aber manchmal komme ich mir auch gepflanzt vor. Ich würde vorschlagen, du fragst mal
// v2.0, Marja Ribbers-de Vroed, FlevOOware
mfg
norbert =:-)
Ja, das hatte ich auch schon vor, aber leider hab ich die Mail-Addy nicht gefunden. Die richtige Variante, die Programmierer selber zu fragen, wäre mir auch lieber gewesen :)
Ich schau aber nochmal noch, ob ich die Adresse finde...
Chriz!
Hi Chriz!
Versuchs mal mit mailto:info@flevooware.nl
Greetz,
mdkiller
Ich habe angefragt, aber keine Lösung bekommen. Nur ein "mußt Du selber programmieren. Vielleicht kommt das in der nächsten Version."
Hm, bin ich also nicht viel weiter...
Chriz!