webForumDet fria alternativet

Layer-Scroll-Problem i NS

3 svar · 190 visningar · startad av Agogo

AgogoMedlem sedan nov. 20037 inlägg
#1

Jag använder en enkel javascript-funktion som ska flytta på en <div> upp och ner på en sida.

Allt fungerar toppen - förutom i NS så klart..

Det måste ju vara att NS inte gillar div-hanteringen på något sätt? Jag har inte en aning men jag har suttit och försökt buggfixa skiten i 3 timmar konstant och kan fan inte lista ut vad NS har för problem!?

Diven som skall förflyttas upp och ner är enklel:
<div id="text" style="position:absolute">

Scrolla-funktionen körs med onMouseDown.
Stopp-funktionen körs med onMouseOut och onMouseUp.

Sidan kan ses här: http://www.cobrakai.se

Här är js-koden:
-------------------------------------------------------------------------------

var objRef;
var steg=1;
var position=1;
var timer = null;

function scrolla(riktning) {

if (document.layers) {
objRef = document.text;
lagerHojd = document.text.clip.height;
}

if (document.all) {
objRef = document.all.text.style;
lagerHojd = document.all.text.offsetHeight;
}

if (document.getElementById) {
objRef = document.getElementById('text').style;
lagerHojd = document.getElementById('text').offsetHeight;
}

if (riktning=="upp" && position<0) {
position+=5;
objRef.top = position;
}

if (riktning=="ner" && position>-(lagerHojd-200)) {
position+=-5;
objRef.top = position;
}
timer = setTimeout("scrolla('" + riktning + "')",25);
}

function stopp(){
clearTimeout(timer);
}

-------------------------------------------------------------------------------

Tilläggas kan ju att jag har dålig koll på vad skillnaden är mellan document.all, document.layers och document.getElementById..

Peter SMedlem sedan dec. 20025 484 inlägg
#2

Vilken version avser du med "NS"? Du kan ju testa med att ange en enhet för lagrets position då denna uppdateras:

objRef.top = position [b]+ "px"[/b];

Gäller givetvis alla ställen i koden.

- document.all gäller endast IE (tyvärr även Opera)
- document.getElementById är standardsättet och fungerar i de nyare webbläsarna (inkl. ie5)
- document.layers gäller endast de äldre NS-läsarna.

:)

AgogoMedlem sedan nov. 20037 inlägg
#3

Det är Netscape 7.1 jag snackar om.. Det är därför jag blir så förvirrad av att det inte funkar!

Ska pröva det där med pixelmarkeing - återkommer.

Surt att man ska behöva gardera sig med 3 olika layerobjekt..

Tack föresten!

AgogoMedlem sedan nov. 20037 inlägg
#4

Helt sinnesjukt.

Har jag suttit i flera timmar och hållt på.. och så är det en så jäkla simpel sak som enhetsspecificering som är felet?! aaargh!!

Tackar Peter.. Du hjälpte mig inte bara med problemet - du poängterade också ett annat problem - att jag är körd i huvet. ;)

Genererad på 367 ms · cache AV · v20260730165559-full.f96bc7eb