Avatar billede andersdp Nybegynder
14. september 2005 - 20:44 Der er 23 kommentarer og
1 løsning

rullegardin hakker i IE

Jeg har brugt scriptet herfra http://eksperten.dk/spm/517527 til at lave dette her: http://www.noode.net/test.htm - klik på *flere indstillinger her*

I Firefox (pc+mac) og safari fungerer det upåklageligt, men ikke i IE på pc. Her vises det baggrundsbillede jeg benytter først til sidst - findes der mon en løsning på det? Eller er det en bug i IE...

Scriptet ser således ud:
----------------------------------
<script type="text/javascript">
  var speed = 50;
  var dY = 10;
  var buttonID = "scrolldownbutton";


  var timer;
  var dir = 1; // 1 = down, 2 = up
  var elm;
  var maxX,maxY;
  function scrollBoxDown() {
        cl = getClipping(elm);
        b = parseInt(cl.bottom);
        if (b + dY <= maxY) {
              elm.style.clip = "rect(0px,"+maxX+"px,"+(b+dY)+"px,0px)";
        }
        else {
              elm.style.clip = "rect(0px,"+maxX+"px,"+maxY+"px,0px)";
              clearInterval(timer);
        }
  }
  function scrollBoxUp() {
        cl = getClipping(elm);
        b = parseInt(cl.bottom);
        if (b - dY >= 0) {
              elm.style.clip = "rect(0px,"+maxX+"px,"+(b-dY)+"px,0px)";
        }
        else {
              elm.style.clip = "rect(0px,"+maxX+"px,0px,0px)";
              clearInterval(timer);
              document.getElementById(buttonID).style.display = "inline";
        }
  }
  function scrollBox(elmID) {
        elm = document.getElementById(elmID);
        maxX = elm.offsetWidth;
        maxY = elm.offsetHeight;
        //document.getElementById(buttonID).style.display = "none";
        if (timer) {clearInterval(timer);}
        if (dir == 1) {timer = setInterval("scrollBoxDown();",speed);dir=2;}
        else {timer = setInterval("scrollBoxUp();",speed);dir = 1}
  }

  function getClipping(celm) {
        if (c = celm.style.clip) {
                tempC = c.substring(c.indexOf("(")+1,c.lastIndexOf(")"));
                tempC = tempC.replace(/,/g,"");
                cArr = tempC.split(" ");
                return {top:cArr[0],right:cArr[1],bottom:cArr[2],left:cArr[3]}
        }
        return;
  }
</script>
Avatar billede roenving Novice
14. september 2005 - 21:01 #1
Baggrundsbillede ?-)
Avatar billede andersdp Nybegynder
14. september 2005 - 21:05 #2
Ja, der skulle gerne komme en hvid baggrund frem - det gør der her. Kig evt. i FF eller hvad du ellers har...

Div'en der ruller ned, har denne baggrund på style="background-image:url(forum-email-settings-bg-big.gif);"
Avatar billede olebole Juniormester
14. september 2005 - 21:17 #3
<ole>

Det er et velkendt problem i IE. Når man begynder at animere elementer med baggrundsbilleder, synes det, somom IE insiterer på at checke for billedet på serveren. Mon ikke også, du har en timeglas-cursor stående og flippe frem og tilbage?  :)

/mvh
</bole>
Avatar billede roenving Novice
14. september 2005 - 21:35 #4
Baggrunden er fremme hele tiden hos mig, men oles forklaring giver mening, for jeg sidder på en 10Mbit-forbindelse, og hakningen kan glimrende passe på alle de gange IE checker på serveren ...

-- jeg checkede også cpu-belastningen og den var, for et simpelt javascript, uhyggelig stor !-)
Avatar billede andersdp Nybegynder
14. september 2005 - 21:57 #5
Ole: Gælder det kun for baggrundsbilleder, eller er det animerede billeder generelt?

Belastningen er ikke alarmerende hos mig, men hvis i kender til andre scripts der løser opgaven på en bedre måde må I gerne sige til - dette var det eneste nogenlunde fornuftige jeg stødte på...
Avatar billede olebole Juniormester
15. september 2005 - 01:02 #6
Hvis du bruger et almindeligt billede, indlejret i elementet, sker det ikke. Det er kun ved baggrundsbilleder ... og det er en pine i nakken  :o|
Avatar billede olebole Juniormester
15. september 2005 - 01:16 #7
Jeg er på vej i seng, så jeg gider ikke selv teste lige nu, men da jeg kan se, du er PHP'er kunne du jo prøve følgende:

Lav en lille fil, der hedder 'pic.php' og en, der hedder 'test.txt'.
I 'test.txt' skriver du bare 0.
I 'pic.php' åbner du 'test.txt' og tæller tallet op med 1. Derefter sætter du en header, der redirecter til et billede:
  Header("Location: myPic.jpg");

Så skriver du filen 'pic.php' ind som baggrundsbillede og tester scriptet, du viser i spm'et. Så vil jeg formode, der vil stå et eller andet stort tal i 'test.txt'  :)
Avatar billede olebole Juniormester
15. september 2005 - 01:18 #8
- måske, du også skal sætte nogle no-cahche headers ... dem finder du her:
  http://dk2.php.net/manual/en/function.header.php

Test selv, hvis du gider - men jeg er temmelig sikker på, min antagelse er korrekt  :)

Til slut blot: Godnat, guys  :)
Avatar billede andersdp Nybegynder
15. september 2005 - 17:18 #9
Ole:
Smed billedet i en div, og så virker det som skal.

Har ikke haft tid til at teste hvor stor belastningen var, men det kunne sikkert have været spændende at se...

Tak for hjælpen, smid et svar.
Avatar billede roenving Novice
15. september 2005 - 17:24 #10
Min bemærkning om cpu-belastningen var jo relateret til 'et simpelt javascript', hvor de ca. 35-40%, jeg oplevede, er helt vildt !-)
Avatar billede andersdp Nybegynder
15. september 2005 - 17:30 #11
Hentydede egentlig til oleboles php forslag, men ja det er en høj belastning. Jeg er på ingen måde javascript mand, så det ville tage mig en evighed at skrive scriptet selv, så - roenving - hvis du kender til et andet script der kan noget der ligner, som er bedre kodet så sig endelig til...
Avatar billede roenving Novice
15. september 2005 - 17:41 #12
Jeg kan ikke se noget egentlig galt med scriptet, og belastningen genereres helt sikkert af alle det http-requests, som ie sparker ud i verdenen !-)
Avatar billede olebole Juniormester
15. september 2005 - 18:14 #13
Ja, det plejer at virke - men det er en squide dårlig vane, IE har fået sig dér  :o|
Tak for points  ;o)
Avatar billede andersdp Nybegynder
15. september 2005 - 18:20 #14
Ja, man kan jo så tænke sit om IE. Håber de spænder hjelmen med 7'eren, så alt spildtiden med fejlretning i IE er overstået... Indtil da, kan man bare sprede ordet om firefox... Nok om browser smag :) Ville du have lidt point olebole?
Avatar billede olebole Juniormester
15. september 2005 - 18:29 #15
*LooOooL* sådan går det, når man deltager i mange tråde på én gang - og kun har to rudimenterede celler til at holde styr på dem. Det var ikke for at være grådig eller komme med fine hentydninger (det sidste bruger jeg iøvrigt slet ikke!)  :D

Jo tak, nu du spørger  ;D
Avatar billede roenving Novice
15. september 2005 - 18:31 #16
Nej, det med de fine hentydninger plejer ikke at være dig, du plejer jo at foretrække damptromler til at slå hul på æg *lol*
Avatar billede olebole Juniormester
15. september 2005 - 18:32 #17
- krebs med en AK47 i ascendanten  *ROTFL*
Avatar billede roenving Novice
15. september 2005 - 18:36 #18
-- og den fredselskende George Bush i kvadrat til mars *GG*
Avatar billede olebole Juniormester
15. september 2005 - 18:39 #19
Astrologien regner, så vidt jeg ved, ikke med sorte huller - endikke i mit horoskop  :D
Avatar billede roenving Novice
15. september 2005 - 18:42 #20
-- Arh, så er det derfor, dagens stjerne passer med forskellige tegn hver dag ...
Avatar billede olebole Juniormester
15. september 2005 - 18:44 #21
- ja, og fordi folk ofte bruger de mest mærkelige tegnsæt
Avatar billede roenving Novice
15. september 2005 - 18:47 #22
Jepz, men jeg blev dog overrasket den dag, det var en gorilla ...

-- så forstod jeg lettere den dagen efter, hvor det var amøben, der passede bedst !-)
Avatar billede olebole Juniormester
15. september 2005 - 18:48 #23
*ROTFLMAO*
Avatar billede olebole Juniormester
15. september 2005 - 19:35 #24
Tak for points, Anders  :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester