DHTML scrollertje doet 't niet onder de mac?

Pagina: 1
Acties:

  • Toni
  • Registratie: Februari 2001
  • Niet online
Ik ben bezig met een website en die heeft een suffe doorlopende scroller nodig. Nu zit ik met het probleem dat 't allemaal wel werkt op de PC met ie en mozilla. Helaas staat 'ie stil op IE voor de Mac. Nu heb ik hier geen mac, en kan ik niet zien wat er misgaat. Ik heb even hier een voorbeeld neergeplant.

Kan iemand me uitleggen wat er misgaat op de mac?

We need more cowbell


  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

Waarom niet gewoon:
code:
1
<marquee>tekst</marquee>
Daar is die tag voor. En bovendien, je scroller werkt hier ook niet hoor. In MozillaBrowser (FireBird 0.6).

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • Toni
  • Registratie: Februari 2001
  • Niet online
doet 't nu wel weer onder mozilla. Was iets vergeten in de code. Het probleem is dat die marquee-tag scroller niet 'doorlopend' is. Dus hij scrollt eerst de complete tekst van links naar rechts, en dan begint 'ie opnieuw wanneer het scherm leeg is. Dat is niet de bedoeling - er moet doorlopend tekst in beeld zijn...

We need more cowbell


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:02

crisp

Devver

Pixelated

Ik denk dat je een position: relative moet toevoegen aan je #container
verder heb ik even je code wat opgeschoond en nog wat verbeteringen aangebracht:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<html>
<head>
<title>TickerTest</title>
<style type="text/css">

#container {
  border-style: solid;
  border-width: 1px;
  width: 200px;
  height: 25px;
  clip: rect(0px, 788px, 75px, 0px);
  overflow: hidden;
  position: relative;
}
#ticker {
  position: absolute;
  top: 0px;
  left: 0px;
  height: 10px;
  width: 50px;
}

</style>
<script type="text/javascript" language="JavaScript">

var initialX = 0;
var initialY = 0
var periyot = 305;
var step = 2;
var ticker = null;
var saat = null;

function getTo(x, y) {

  if (document.layers) {
    ticker.moveTo(x,y);
  } else {
    ticker.style.left = x + 'px';
    ticker.style.top = y + 'px';
  }

}

function startTape() {

  initialX -= step;
  getTo(initialX, initialY);
  if (initialX < -periyot) initialX = 0;
  saat = setTimeout('startTape()', 20);

}

function initTape() {

  if (document.getElementById) {
    ticker = document.getElementById('ticker');
  } else if (document.all) {
    ticker = document.all['ticker'];
  } else if (document.layers) {
    ticker = document.layers.container.document.layers['ticker'];
  }

  if (ticker) saat = setTimeout('startTape()', 20);

}

</script>
</head>
<body onload="initTape();">
<table border="1" cellpadding="0" cellspacing="0" width="100%" height="100%">
 <tr>
  <td valign="middle" align="center">
   <div id="container">
    <div id="ticker">
      <nobr>
       <span>Dit is een test van een doorlopende tickertape *** Dit is een test van een doorlopende tickertape </SPAN>  
      </nobr>
     </div>
   </div>
  </td>
 </tr>
</table>
</body>
</html>

[ Voor 35% gewijzigd door crisp op 04-06-2003 15:44 ]

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

nog kleine optimalisaties:

je voert nu in getTo(..) elke lookup dubbel uit bijvoorbeeld:

code:
1
2
    document.getElementById(katman).style.left = x + 'px';
    document.getElementById(katman).style.top = y + 'px';


Aangezien deze functie 50x per seconde wordt uitgevoerd en de lookups over het algemeen niet zo super snel zijn, scheelt dit je 50 lookups per seconde :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function getTo(katman, x, y) {

  if (document.getElementById) {
    var ele = document.getElementById(katman);
    ele.style.left = x + 'px';
    ele.style.top = y + 'px';
  } else if (document.all) {
    var ele = document.all[katman];
    ele.style.pixelLeft = x;
    ele.style.pixelTop = y;
  } else if (document.layers) {
    document.layers.container.document.layers[katman].moveTo(x,y);
  }

}

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:02

crisp

Devver

Pixelated

Bosmonster schreef op 04 juni 2003 @ 15:10:
nog kleine optimalisaties:
[...]
Da's inderdaad een goed idee, nog mooier is om gewoon de referentie in een init() op te slaan in een global, en verder alleen de global gebruiken. Ik heb dat even in mijn voorbeeldje verwerkt :)

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Baas boven baas :)
Pagina: 1