Avatar billede rasta123 Nybegynder
28. juni 2003 - 21:03 Der er 4 kommentarer

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!
Avatar billede rasta123 Nybegynder
29. juni 2003 - 15:55 #1
Sådan.. Nu har jeg forhøjet pointtallet.. Er der nogen der vil kigge på det nu??
Avatar billede roenving Novice
05. juli 2003 - 01:48 #2
Har du fundet frem til løsningen, jeg blev ikke helt klar på din mail ?-)
Avatar billede rasta123 Nybegynder
05. juli 2003 - 12:51 #3
Hejsa.. Jeps jeps.. Jeg har fundet løsningen!.. Havde åbenbart siddet til for sent, og kunne derfor ikke overskue, men dagen efter var det klart.. Jeg havde overset en variabel, og andre var ikke variabler!:. Men´nu virker det!
Avatar billede roenving Novice
05. juli 2003 - 13:37 #4
Bueno ;O)
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