Avatar billede krusnof Nybegynder
08. juni 2008 - 12:05 Der er 7 kommentarer og
1 løsning

Rollover og scrollover

Jeg har et problem med at få et billede til at lave et rollover, når man peger på billedet. Det skyldes at jeg bruger et script fra www.scrollovers.com, som laver mine links lidt om.
Når jeg sætter rollover scriptet ind (Dreamweaver laver det automatisk), så stopper scrollovers.com scriptet med at virke!? Er der nogen som kender en løsning på dette!?!?

Rollover script:
<script type="text/javascript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>

Scrollovers script:
Se venligst www.scrollovers.com, da scriptet er meget langt til at sætte ind.

Håber virkelig at I kan hjælpe!!

Tak
Avatar billede olebole Juniormester
08. juni 2008 - 14:45 #1
<ole>

Prøv at lægge et link til siden  =)

/mvh
</bole>
Avatar billede krusnof Nybegynder
08. juni 2008 - 14:52 #2
Hmmm... Ville jeg gerne, men har fjernet rollover på billedet, for ellers ser det ikke pænt ud - så har ikke noget som kan vise ekspemplet. Troede bare at nogen lige kunne se hvor script'ene "overlapper" eller lignende.
Avatar billede olebole Juniormester
08. juni 2008 - 20:58 #3
Jamen, det er ikke i den kode, du viser, fejlen ligger. At finde fejlen uden at se din kode er ikke muligt  =)
Avatar billede krusnof Nybegynder
08. juni 2008 - 21:26 #4
Mit problem består i, når begge koder er på samme side. Jeg kopierer lige koden ind fra scrollovers.com - hver for sig, virker de fint, så det er nok fordi de overlapper nogle samme parameter eller lignende!?

/******************************************************************

                    S C R O L L O V E R S
                    ---------------------
            Written by Steffan Luczyn - July 2007
                    www.scrollovers.com   
   
        May be used for personal and business use, but may
          never be sold or used in a product that is not
                  free without my consent.

*******************************************************************/

        var scrollovers_TypeName = 'scrollover';
        var scrollovers_StartScrollLocation = 0;
        var scrollovers_EndScrollLocationTrim = 0;
        var scrollovers_ScrollSpeed = 3;
        var scrollovers_ScrollDownOnMouseOver = true;

       
        var scrollovers_ElementsInFocus = new Array();
       
        function scrollovers_Init(){
            /* DEFAULT TRIM SETTINGS */
            scrollovers_StartScrollLocation = 0;
            scrollovers_EndScrollLocationTrim = -1;
           
            if(navigator.userAgent.toLowerCase().indexOf("safari")!=-1){
                /* SAFARI TRIM SETTINGS */
                scrollovers_StartScrollLocation = 0;
                scrollovers_EndScrollLocationTrim = -1;
            }else if(navigator.userAgent.toLowerCase().indexOf("opera")!=-1){
                /* OPERA TRIM SETTINGS */               
                scrollovers_StartScrollLocation = 0;
                scrollovers_EndScrollLocationTrim = -1;
            }
           
            var aTmp = document.getElementsByTagName('a');
            var aLinks = new Array();
            for(i=0;i<aTmp.length;i++){
                if(scrollovers_TypeName == '' || aTmp[i].getAttribute('type') == scrollovers_TypeName){
                    aLinks.push(aTmp[i]);
                }
            }
            aTmp = null;
       
            for(i=0;i<aLinks.length;i++){
                var sElemId = 'scrollover_'+i;
                var sExistingHTML = aLinks[i].innerHTML;
                var iWidth = parseInt(aLinks[i].scrollWidth)+1;
                var sHtml = '';
                aLinks[i].style.textDecoration = 'none';
               
                sHtml +=     '<span style="display:block; cursor:pointer; cursor:hand; height:1em; position:relative; overflow:visible; width:'+iWidth+'px; margin-top:-0.2em;">';
                sHtml +=        '<span style="display:block; position:absolute; overflow:hidden; height:1.3em; width:'+iWidth+'px; margin-bottom:-0.3em;">';
                sHtml +=            '<span style="display:block; margin-top:-0.1em; position:absolute; width:'+iWidth+'px;" class="scrollover_Nudge">';
                sHtml +=                '<em id="'+sElemId+'" style="display:block; line-height:1.4em; position:absolute; top:'+scrollovers_StartScrollLocation+'px; font-style:normal;">'+sExistingHTML+' '+sExistingHTML+'</em>';
                sHtml +=            '</span>';
                sHtml +=        '</span>';
                sHtml +=    '</span>';

                var sOriginalText = aLinks[i].innerText;
                aLinks[i].innerHTML = '';
                var oScrollover = document.createElement('fieldset');
                oScrollover.style.border = 'none';
                oScrollover.style.lineHeight = '1em';
                oScrollover.style.width = iWidth;
                oScrollover.style.textAlign = 'left';
                oScrollover.style.display = 'inline';
                oScrollover.style.margin = '0';
                oScrollover.style.padding = '0';
                oScrollover.innerHTML = sHtml;
               
                aLinks[i].appendChild(oScrollover);

                var oTag = document.getElementById(sElemId);
               
                var oElement = new Element(sElemId, oTag);
                scrollovers_ElementsInFocus.push(oElement);
                oTag.elementObject = oElement;
                oTag.onmouseover = scrollovers_MouseOver;
                oTag.onmouseout = scrollovers_MouseOut;
               
                if(scrollovers_ScrollDownOnMouseOver){
                    oTag.style.top = (oElement.ScrollHeight*-1)+scrollovers_EndScrollLocationTrim+'px';
                }
            }
        }
        function scrollovers_MouseOver(oEvent){
            var oSender = null;
            if(window.event){
                oSender = window.event.srcElement;
            }else{
                oSender = oEvent.target;
            }

            scrollovers_ElementsInFocus.getById(oSender.elementObject.Id).MouseIsOver = true;
            if(scrollovers_ScrollDownOnMouseOver){
                setTimeout('scrollovers_RollDown(\''+oSender.elementObject.Id+'\')', 100);
            }else{
                setTimeout('scrollovers_RollUp(\''+oSender.elementObject.Id+'\')', 100);
            }
        }
        function scrollovers_MouseOut(oEvent){
            var oSender = null;
            if(window.event){
                oSender = window.event.srcElement;
            }else{
                oSender = oEvent.target;
            }
            oSender.elementObject.MouseIsOver = false;
            if(scrollovers_ScrollDownOnMouseOver){
                setTimeout('scrollovers_RollUp(\''+oSender.elementObject.Id+'\')', 100);
            }else{
                setTimeout('scrollovers_RollDown(\''+oSender.elementObject.Id+'\')', 100);
            }
        }
        function scrollovers_RollUp(sIdToRoll){
            var oElementToRoll = scrollovers_ElementsInFocus.getById(sIdToRoll);
            if(scrollovers_ScrollDownOnMouseOver){
                if(oElementToRoll.MouseIsOver){return;}
            }else{
                if(!oElementToRoll.MouseIsOver){return;}
            }
            if(oElementToRoll.ScrollLocation+scrollovers_ScrollSpeed < oElementToRoll.ScrollHeight){
                oElementToRoll.ScrollLocation += scrollovers_ScrollSpeed;
                oElementToRoll.TagRef.style.top = oElementToRoll.ScrollLocation*-1+'px';
                setTimeout('scrollovers_RollUp(\''+sIdToRoll+'\')', 10);
            }else{
                oElementToRoll.ScrollLocation =  oElementToRoll.ScrollHeight;
                oElementToRoll.TagRef.style.top = (oElementToRoll.ScrollHeight*-1)+scrollovers_EndScrollLocationTrim+'px';
            }
        }
        function scrollovers_RollDown(sIdToRoll){
            var oElementToRoll = scrollovers_ElementsInFocus.getById(sIdToRoll);
            if(scrollovers_ScrollDownOnMouseOver){
                if(!oElementToRoll.MouseIsOver){return;}
            }else{
                if(oElementToRoll.MouseIsOver){return;}
            }
            if(oElementToRoll.ScrollLocation-scrollovers_ScrollSpeed > scrollovers_StartScrollLocation){
                oElementToRoll.ScrollLocation -= scrollovers_ScrollSpeed;
                oElementToRoll.TagRef.style.top = oElementToRoll.ScrollLocation*-1+'px';
                setTimeout('scrollovers_RollDown(\''+sIdToRoll+'\')', 10);
            }else{
                oElementToRoll.ScrollLocation =  scrollovers_StartScrollLocation;
                oElementToRoll.TagRef.style.top = scrollovers_StartScrollLocation+'px';
            }
        }
       
        function Element(sId, oObject){
            this.Id = sId;
            this.TagRef = oObject;
            this.ScrollHeight = parseInt(this.TagRef.scrollHeight)/2-1;
            this.ScrollLocation = (scrollovers_ScrollDownOnMouseOver?this.ScrollHeight:0);
            this.MouseIsOver = false;
        }
        Array.prototype.getById = function(sId){
                                        for(i=0;i<this.length;i++){
                                            if(this[i].Id == sId){
                                                return this[i];
                                            }
                                        }
                                        return null;
                                  };
        Array.prototype.getIndexById = function(sId){
                                        for(i=0;i<this.length;i++){
                                            if(this[i].Id == sId){
                                                return i;
                                            }
                                        }
                                        return null;
                                  };
       
        window.onload = scrollovers_Init;
Avatar billede olebole Juniormester
08. juni 2008 - 22:21 #5
Det er stadigvæk ikke dér. Hvordan ser dit body-tag ud?
Avatar billede krusnof Nybegynder
08. juni 2008 - 23:03 #6
Okay, jeg har midlertidigt uploaded siden hvor den fejler: http://annettekruse.dk/
Linkene i menuen til venstre skal ikke have stregen over sig - de skal være påvirket af scrollovers, som du også kan se i koden.
Håber du kan hjælpe derfra... TAK
Avatar billede krusnof Nybegynder
10. juni 2008 - 11:19 #7
Ingen som kan hjælpe, øv øv
Avatar billede krusnof Nybegynder
24. maj 2010 - 20:56 #8
Virkede aldrig, tak ellers
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