Problemer med 2 ens skripts på een side!
Hejsa alle...Jeg er ved at lave et site, og på hovedsiden har jeg en div, der bliver scrollet hen over siden... Altså nogle pressemeddelelser, hvor der langsomt scroller op ad!
Da jeg kom lidt videre, fandt jeg på, at noget andet på samme side skulle scrolle...
Jeg prøvede først at udbygge mit script, som jeg fandt på internettet, men da jeg ikke kender javascript så godt, er det svært..
Jeg ville så lave to forskellige skripts.. Mit originale og det nye, hvor jeg bare ændrer navnene på variablerne og på funktionerne.. Jeg har bare sat et p foran dem alle.. Men da jeg ikke kender javascript rigtig, er det svært for mig at se, hvad der er indbygget i javaskript, og hvilke der er nye variabler
Det virker bare ikke.. Jeg håber i kan se, hvor fejlen ligger, for jeg kan ikke.. Her er min kode:
<html>
<head>
<script language="Javascript">
/**********************************************************************************
PageScroll
* Copyright (C) 2001 <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a>
* This script was released at DHTMLCentral.com
* Visit for more great scripts!
* This may be used and changed freely as long as this msg is intact!
* We will also appreciate any links you could give us.
*
* Made by <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a>
*********************************************************************************/
function lib_bwcheck(){ //Browsercheck (needed)
this.ver=navigator.appVersion
this.agent=navigator.userAgent
this.dom=document.getElementById?1:0
this.opera5=this.agent.indexOf("Opera 5")>-1
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;
this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
this.ie=this.ie4||this.ie5||this.ie6
this.mac=this.agent.indexOf("Mac")>-1
this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
return this
}
var bw=new lib_bwcheck()
/*********************************************************************************
These are the variables you have to set:
*********************************************************************************/
//The speed of the timeout between each scroll.
timSpeed = 50
//timSpeed = 10
//The height of the container (change this when it scrolls to much or to little)
contHeight = 50
//contHeight = 100
/*********************************************************************************
This is the object constructor function, which applies
methods and properties to the Cross-browser layer object
*********************************************************************************/
function makeScrollObj(obj,nest){
nest=(!nest) ? "":'document.'+nest+'.'
this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
this.height=bw.ns4?this.css.document.height:this.el.offsetHeight
this.top=b_gettop
return this
}
// A unit of measure that will be added when setting the position of a layer.
var px = bw.ns4||window.opera?"":"px";
//Getting the top for the top method
function b_gettop(){
var gleft=(bw.ns4 || bw.ns6)?parseInt(this.css.top):eval(this.css.pixelTop);
return gleft;
}
//Variables
var scrollTim = 1;
var active = 0;
/*********************************************************************************
The scroll function. Checks what way to scroll and checks if the
layer is not already on top or bottom.
*********************************************************************************/
function scroll(speed){
clearTimeout(scrollTim)
way = speed>0?1:0
if ((!way && oScroll[active].top()>-oScroll[active].height+contHeight) || (oScroll[active].top()<0 && way)){
oScroll[active].css.top = (oScroll[active].top()+speed)+px
scrollTim = setTimeout("scroll("+speed+")",timSpeed)
}
}
function initScroll(speed){
clearTimeout(scrollTim)
way = speed>0?1:0
//if ((!way && oScroll[active].top()>-oScroll[active].height+contHeight) || (oScroll[active].top()< 0 && way)){
if ((!way && oScroll[active].top()>-oScroll[active].height) || (oScroll[active].top()< 0 && way)){
oScroll[active].css.top = (oScroll[active].top()+speed)+px
scrollTim = setTimeout("initScroll("+speed+")",timSpeed)
}else{
changeActive(0);
initScroll(speed);
}
}
//Clears the timeout so the scroll stops, this is called onmouseout.
function noScroll(){
clearTimeout(scrollTim)
}
/*********************************************************************************
Changes the active layer. Hides the one that's visible and
shows the "new" one. Also set's the new layers top to
0 so it starts at top.
*********************************************************************************/
function changeActive(num){
oScroll[active].css.visibility = "hidden"
active = num
//oScroll[active].css.top = 0+px
oScroll[active].css.top = (contHeight+25)+px
oScroll[active].css.visibility = "visible"
}
/*********************************************************************************
Initilizes the page, makes a oScroll Array and calls the object constructor.
Here you can add as many scrollObjects as you want
*********************************************************************************/
function scrollInit(){
oScroll = new Array()
// You can add and remove scrollObjects here.
oScroll[0] = new makeScrollObj('divScroll1','divCont')
oScroll[0].css.left = 0+px
oScroll[0].css.top = 0+px
oScroll[0].css.visibility = "visible"
oControl = new makeScrollObj('divControl')
oControl.css.visibility = "visible"
}
/*********************************************************************************
Executes the scrollInit function on pageload.
*********************************************************************************/
//onload = scrollInit;
/***************
Multiple Scripts
If you have two or more scripts that use the onload event, probably only one will run (the last one).
Here is a solution for starting multiple scripts onload:
1. Delete or comment out all the onload assignments, onload=initScroll and things like that.
2. Put the onload assignments in the body tag like in this example, note that they must have braces ().
Example: <body onload="initScroll(); initTooltips(); initMenu();">
**************/
</script>
<script language="Javascript">
/**************************************************************************
********
PageScroll
* Copyright (C) 2001 <a href="/dhtmlcentral/thomas_brattli.asp">Thomas
Brattli</a>
* This script was released at DHTMLCentral.com
* Visit for more great scripts!
* This may be used and changed freely as long as this msg is intact!
* We will also appreciate any links you could give us.
*
* Made by <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a>
***************************************************************************
******/
function lib_bwcheck(){ //Browsercheck (needed)
this.ver=navigator.appVersion
this.agent=navigator.userAgent
this.dom=document.getElementById?1:0
this.opera5=this.agent.indexOf("Opera 5")>-1
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom &&
!this.opera5)?1:0;
this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom &&
!this.opera5)?1:0;
this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
this.ie=this.ie4||this.ie5||this.ie6
this.mac=this.agent.indexOf("Mac")>-1
this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6
|| this.opera5)
return this
}
var pbw=new lib_bwcheck()
/**************************************************************************
*******
These are the variables you have to set:
***************************************************************************
******/
//The speed of the timeout between each scroll.
ptimSpeed = 50
//ptimSpeed = 10
//The height of the container (change this when it scrolls to much or to
little)
pcontHeight = 50
//pcontHeight = 100
/**************************************************************************
*******
This is the object constructor function, which applies
methods and properties to the Cross-browser layer object
***************************************************************************
******/
function pmakeScrollObj(pobj,pnest){
pnest=(!pnest) ? "":'document.'+pnest+'.'
this.el=pbw.dom?document.getElementById(pobj):pbw.ie4?document.all[pobj]:pb
w.ns4?eval(pnest+'document.'+pobj):0;
this.css=pbw.dom?document.getElementById(pobj).style:pbw.ie4?document.all[p
obj].style:pbw.ns4?eval(pnest+'document.'+pobj):0;
this.height=pbw.ns4?this.css.document.height:this.el.offsetHeight
this.top=pb_gettop
return this
}
// A unit of measure that will be added when setting the position of a
layer.
var ppx = bw.ns4||window.opera?"":"ppx";
//Getting the top for the top method
function pb_gettop(){
var pgleft=(pbw.ns4 ||
pbw.ns6)?parseInit(this.css.top):eval(this.css.pixelTop);
return pgleft;
}
//Variables
var pscrollTim = 1;
var pactive = 0;
/**************************************************************************
*******
The scroll function. Checks what way to scroll and checks if the
layer is not already on top or bottom.
***************************************************************************
******/
function pscroll(pspeed){
clearTimeout(pscrollTim)
pway = pspeed>0?1:0
if ((!pway &&
poScroll[pactive].top()>-poScroll[pactive].height+pcontHeight) ||
(poScroll[pactive].top()<0 && pway)){
poScroll[pactive].css.top =
(poScroll[pactive].top()+pspeed)+ppx
pscrollTim = setTimeout("pscroll("+pspeed+")",ptimSpeed)
}
}
function pinitScroll(pspeed){
clearTimeout(pscrollTim)
pway = pspeed>0?1:0
//if ((!pway &&
poScroll[pactive].top()>-poScroll[pactive].height+pcontHeight) ||
(poScroll[pactive].top()< 0 && pway)){
if ((!pway && poScroll[pactive].top()>-poScroll[pactive].height) ||
(poScroll[pactive].top()< 0 && pway)){
poScroll[pactive].css.top =
(poScroll[pactive].top()+pspeed)+ppx
pscrollTim =
setTimeout("pinitScroll("+pspeed+")",ptimSpeed)
}else{
pchangeActive(0);
pinitScroll(pspeed);
}
}
//Clears the timeout so the scroll stops, this is called onmouseout.
function pnoScroll(){
clearTimeout(pscrollTim)
}
/**************************************************************************
*******
Changes the active layer. Hides the one that's visible and
shows the "new" one. Also set's the new layers top to
0 so it starts at top.
***************************************************************************
******/
function pchangeActive(pnum){
poScroll[pactive].css.visibility = "hidden"
pactive = pnum
//poScroll[pactive].css.top = 0+ppx
poScroll[pactive].css.top = (pcontHeight+25)+ppx
poScroll[pactive].css.visibility = "visible"
}
/**************************************************************************
*******
Initilizes the page, makes a oScroll Array and calls the object
constructor.
Here you can add as many scrollObjects as you want
***************************************************************************
******/
function pscrollInit(){
poScroll = new Array()
poScroll[0] = new pmakeScrollObj('divScroll2','divCont1')
poScroll[0].css.left = 0+ppx
poScroll[0].css.top = 0+ppx
poScroll[0].css.visibility = "visible"
poControl = new pmakeScrollObj('divControl1')
poControl.css.visibility = "visible"
}
/**************************************************************************
*******
Executes the scrollInit function on pageload.
***************************************************************************
******/
//onload = scrollInit;
/***************
Multiple Scripts
If you have two or more scripts that use the onload event, probably only
one will run (the last one).
Here is a solution for starting multiple scripts onload:
1. Delete or comment out all the onload assignments, onload=initScroll
and things like that.
2. Put the onload assignments in the body tag like in this example, note
that they must have braces ().
Example: <body onload="initScroll(); initTooltips(); initMenu();">
**************/
</script>
<style>
#divControl {
position:absolute;
left:170px;
top:20px;
width:15px;
font-size:8pt;
font-family:arial,helvetica,sans-serif;
visibility:hidden;
}
#divControl1 {
position:absolute;
left:170px;
top:200px;
width:15px;
font-size:8pt;
font-family:arial,helvetica,sans-serif;
visibility:hidden;
}
#divCont{
position:absolute;
left:5px;
top:20px;
width:170px;
height:130px;
clip:rect(0px 165px 130px 0px);
}
#divCont1{
position:absolute;
left:5px;
top:200px;
width:170px;
height:130px;
clip:rect(0px 165px 130px 0px);
}
.clScroll{
position : absolute;
font-size:8pt;
font-family:arial,helvetica,sans-serif;
visibility:hidden;
}
.clScroll1{
position : absolute;
font-size:8pt;
font-family:arial,helvetica,sans-serif;
visibility:VISIBLE;
}
</style>
</head>
<body ONLOAD="fadeInit();scrollInit();pscrollInit();setTimeout('initScroll(-1)',4000); ">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign=top>
<div id="divCont">
<div id="divScroll1" class="clScroll">
<a class="newsBox" href="http://testlink1.htm"
target="_outbound">Pressemeddelelse nummer 1.. Dette er en test!</a>
<br><img src="pixel.giF" width="18" height="15" border="0"><br>
<a class="newsBox" href="http://testlink2.htm"
target="_outbound">Pressemeddelelse nummer 2.. Dette er en test!</a>
<br><img src="pixel.gif" width="18" height="15" border="0"><br>
<a class="newsBox" href="http://testlink2.htm"
target="_outbound">Pressemeddelelse nummer 3.. Dette er en test!</a>
<br><img src="pixel.gif" width="18" height="15" border="0"><br>
</div>
</div>
</td>
<td>
<div id="divControl">
<table border="0" cellpadding="0" cellspacing="0">
<tr><td><a href="#" onmouseover="scroll(5)"
onmouseout="noScroll()" onclick="return false"><img src="up.gif"
border="0"></a></td></tr>
<tr><td><img src="pixel.gif" width="1"
height="110"></td></tr>
<tr><td><a href="#" onmouseover="scroll(-5)"
onmouseout="noScroll()" onclick="return false"><img src="down.gif"
border="0"></a></td></tr>
</table>
</div>
</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign=top>
<div id="divCont1">
<div id="divScroll2" class="clScroll1">
<a class="newsBox" href="http://testlink1.htm" target="_outbound">Igen
pressemeddelelse.. Dette er en test!</a>
<br><img src="pixel.giF" width="18" height="15" border="0"><br>
<a class="newsBox" href="http://testlink2.htm"
target="_outbound">Pressemeddelelse nummer 2.. Dette er en test!</a>
<br><img src="pixel.gif" width="18" height="15" border="0"><br>
<a class="newsBox" href="http://testlink2.htm"
target="_outbound">Pressemeddelelse nummer 3.. Dette er en test!</a>
<br><img src="pixel.gif" width="18" height="15" border="0"><br>
</div>
</div>
</td>
<td>
<div id="divControl1">
<table border="0" cellpadding="0" cellspacing="0">
<tr><td><a href="#" onmouseover="pscroll(5)"
onmouseout="pnoScroll()" onclick="return false"><img src="up.gif"
border="0"></a></td></tr>
<tr><td><img src="pixel.gif" width="1"
height="110"></td></tr>
<tr><td><a href="#" onmouseover="pscroll(-5)"
onmouseout="pnoScroll()" onclick="return false"><img src="down.gif"
border="0"></a></td></tr>
</table>
</div>
</td>
</tr>
</table>
</body>
</html>
Først kommer det originale javaskript.. Derefter det jeg har pillet ved.. Så kommer style, som er meget nødvendige, da det er dem der bliver pillet ved.. Derefter mit html, hvori indholdet er!..
Jeg håber i kan hjælpe mig!
