Meddelande

Minska
No announcement yet.

Kombinera två script?!!

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Kombinera två script?!!

    Hej...

    Håller på att bli tokig...
    Har provat, flyttat om, ändrat och försökt... men icke sa nick... synd att man inte är så haj på Javascript...

    Det jag vill göra.. är att på något sätt kombinera dessa två script...

    1. http://www.webforum.nu/showthread.ph...678#post973678

    2. http://www.webforum.nu/showthread.ph...652#post713652

    I det ena scriptet, en grej.. precis som jag vill ha det, att ett LAGER visas när man håller musen över länken... och sedan döljs när man tar bort...

    Det andra scriptet... en perfekt infade/utfade av LAGER...

    Skulle vilja ha den fade efekten så den fadar in LAGRET när man har musen över... samt fadar ut när man tar bort musen...

    Borde inte vara så svårt..?! men jag är inte så haj på dessa lager...

    Båda fungerade för mig i IE / Mozilla... så det är också en fördel...

    Hoppas verkligen någon kan hjälpa mig, suttit i timmar och provat nu...
    ----------------------------------
    Tommie "toja" Jakobsson
    www.stambokaj.se

  • #2
    Eftersom ingen svarar.. så provar jag själv hela tiden...
    har gjort detta för att se om man kan få en att fada in på befallning.. vet inte om det är på rätt väg.. eller om det änns är i närheten.. fast det känns så... men nu klagar den helt plötsligt på att ett objekt krävs...??!

    [kod]
    <a href="javascriptade('fadea',1);">Visa lager 1</a>
    <br>
    <br>
    <div id="fadea" style="position:absolute;top:100px;left:100px;visibilityidden;"><img src="http://www.webforum.nu/images/wfstandard/logo_webforum.gif"></div>

    <script type="text/javascript">
    function fade(layid,diff,opacity){
    opacity=(opacity)?opacitydiff<0)?100:0; opacity+=diff;
    if(document.getElementById&&document.all){
    document.getElementById(layid).style.filter="alpha(opacity=" +opacity+")";
    }else if(document.getElementById&&!document.all){
    document.getElementById(layid).style.MozOpacity = opacity/100;
    }
    document.getElementById(layid).style.visibility="visible";
    setTimeout("fade("+layid+","+diff+","+opacity+");",10);
    }
    </script>
    [/kod]

    Här klagar IE på att ett objekt krävs:
    document.getElementById(layid).style.filter="alpha(opacity=" +opacity+")";

    Samma rad säger Mozilla så här om:
    Fel: document.getElementById(layid) has no properties

    Fattar inte.. har inte ändrat den raden ju... sen det automatiserade, fungerande scriptet...
    ----------------------------------
    Tommie "toja" Jakobsson
    www.stambokaj.se

    Kommentera


    • #3
      Vart är Eliten... de brukar ju hänga här på WF... svar brukar komma asfort, i alla fall i php-forumet...
      ----------------------------------
      Tommie "toja" Jakobsson
      www.stambokaj.se

      Kommentera


      • #4
        Din sista rad i javascriptet är det som går snett... Du har missat ett par "fnuttar".
        [KOD]
        setTimeout("fade('"+layid+"',"+diff+","+opacity+");",10);
        [/KOD]
        "OK, that's the last memory leak."

        Kommentera


        • #5
          tack jawbreaker, äntligen!

          Nu börjar jag närma mig... nu vill jag bara ha en till lika funktion som gör tvärtom...

          typ:

          [kod]
          <a href="javascriptade('fadea',1);">Visa lager 1</a> <a href="javascriptade2('fadea',1);">dölj lager 1</a>
          <br>
          <br>
          <div id="fadea" style="position:absolute;top:100px;left:100px;visibilityidden;"><img src="http://www.webforum.nu/images/wfstandard/logo_webforum.gif"></div>

          <script type="text/javascript">
          function fade(layid,diff,opacity){
          opacity=(opacity)?opacitydiff<0)?100:0; opacity+=diff;
          if(document.getElementById&&document.all){
          document.getElementById(layid).style.filter="alpha(opacity=" +opacity+")";
          }else if(document.getElementById&&!document.all){
          document.getElementById(layid).style.MozOpacity = opacity/100;
          }
          document.getElementById(layid).style.visibility="visible";
          setTimeout("fade('"+layid+"',"+diff+","+opacity+");",10);
          }

          function fade2(layid,diff,opacity){
          opacity=(opacity)?opacitydiff<0)?100:0; opacity+=diff;
          if(document.getElementById&&document.all){
          document.getElementById(layid).style.filter="alpha(opacity=" +opacity+")";
          }else if(document.getElementById&&!document.all){
          document.getElementById(layid).style.MozOpacity = opacity/100;
          }
          document.getElementById(layid).style.visibility="visible";
          setTimeout("fade2('"+layid+"',-"+diff+","+opacity+");",10);
          }
          </script>
          [/kod]

          Detta är säkert fel, fade() fungerar som den ska... fade2() gör det inte.. och det är för att jag inte ändrat något förutom ett minut på "diff" när funktionen körs om... antar att det inte är allt som måste göras...

          antar att det har med denna rad att göra:
          opacity=(opacity)?opacitydiff<0)?100:0; opacity+=diff;

          skulle någon kunna förklara hur man löser det.. och gärna också steg för steg.. vad hela den raden gör... med alla frågetecken, colon, mm..

          Heja javascript eliten!
          ----------------------------------
          Tommie "toja" Jakobsson
          www.stambokaj.se

          Kommentera


          • #6
            Hmm... ändrade lite småsaker i fade2()

            nu kommer inga felmess.. men den typ blinkar... istället för att fadeas...

            [kod]
            function fade2(layid,diff,opacity){
            opacity=(opacity)?opacitydiff>100)?0:100; opacity-=diff;
            if(document.getElementById&&document.all){
            document.getElementById(layid).style.filter="alpha(opacity=" +opacity+")";
            }else if(document.getElementById&&!document.all){
            document.getElementById(layid).style.MozOpacity = opacity/100;
            }
            document.getElementById(layid).style.visibility="visible";
            setTimeout("fade2('"+layid+"',"+diff+","+opacity+");",10);
            }
            [/kod]
            ----------------------------------
            Tommie "toja" Jakobsson
            www.stambokaj.se

            Kommentera


            • #7
              Testa det här istället:
              [KOD]
              <a href="javascriptade('fadea',1);">Visa lager 1</a> <a href="javascriptade('fadea',-1);">dölj lager 1</a>
              <br>
              <br>
              <div id="fadea" style="position:absolute;top:100px;left:100px;visibilityidden;"><img src="http://www.webforum.nu/images/wfstandard/logo_webforum.gif"></div>

              <script type="text/javascript">
              var g_tmr = null;
              var g_opacity = 0;

              function fade( layid, diff )
              {
              if ( g_tmr )
              clearTimeout( g_tmr );

              g_opacity += diff;
              if ( 100 < g_opacity )
              g_opacity = 100;
              else if ( 0 > g_opacity )
              g_opacity = 0;

              if ( g_opacity > 0 && g_opacity < 100 )
              {
              if ( document.getElementById && document.all )
              {
              document.getElementById(layid).style.filter = "alpha(opacity="+g_opacity+")";
              }
              else if ( document.getElementById && !document.all )
              {
              document.getElementById(layid).style.MozOpacity = g_opacity/100;
              }

              document.getElementById(layid).style.visibility = "visible";
              g_tmr = setTimeout( "fade('"+layid+"',"+diff+");", 10 );
              }
              }

              </script>
              [/KOD]
              "OK, that's the last memory leak."

              Kommentera


              • #8
                Hehe... Fan.. du löser det här åt mig jawbreaker...

                en liten till fråga bara... ditt script fungerar än så länge precis som jag vill ha det... förrutom en sak!

                När den fadear ut.. så försvinner den inte helt... den synns jättesvagt.. försökte testa lite.. men allt jag får den att göra är att gå långsammare..!!
                ----------------------------------
                Tommie "toja" Jakobsson
                www.stambokaj.se

                Kommentera


                • #9
                  Hmmm, testa det här då...
                  [KOD]
                  function fade( layid, diff )
                  {
                  if ( g_tmr )
                  clearTimeout( g_tmr );

                  g_opacity += diff;

                  if ( g_opacity >= 0 && g_opacity <= 100 )
                  {
                  if ( document.getElementById && document.all )
                  {
                  document.getElementById(layid).style.filter = "alpha(opacity="+g_opacity+")";
                  }
                  else if ( document.getElementById && !document.all )
                  {
                  document.getElementById(layid).style.MozOpacity = g_opacity/100;
                  }

                  document.getElementById(layid).style.visibility = "visible";
                  g_tmr = setTimeout( "fade('"+layid+"',"+diff+");", 10 );
                  }
                  }
                  [/KOD]
                  "OK, that's the last memory leak."

                  Kommentera


                  • #10
                    hmm.. nope... synns fortfarande.!!
                    ----------------------------------
                    Tommie "toja" Jakobsson
                    www.stambokaj.se

                    Kommentera


                    • #11
                      men det gör igentligen inget... nöjd så... nu är bara nästa problem.. att få den in i den andra funktionen... provar lite..!!
                      ----------------------------------
                      Tommie "toja" Jakobsson
                      www.stambokaj.se

                      Kommentera


                      • #12
                        Det var rackarns... Jag ser inte bilden. Men ett litet tillägg som borde gömma hela lagret, och då borde inte bilden kunna synas i alla fall...
                        [KOD]
                        function fade( p_id, p_diff )
                        {
                        if ( g_tmr )
                        clearTimeout( g_tmr );

                        g_opacity += p_diff;
                        if ( g_opacity > 100 )
                        g_opacity = 100;
                        else if ( g_opacity < 0 )
                        g_opacity = 0;

                        document.getElementById( p_id ).style.visibility = "visible";

                        if ( document.getElementById && document.all )
                        document.getElementById( p_id ).style.filter = "alpha(opacity="+g_opacity+")";
                        else if ( document.getElementById && !document.all )
                        document.getElementById( p_id ).style.MozOpacity = g_opacity / 100;

                        if ( g_opacity > 0 && g_opacity < 100 )
                        g_tmr = setTimeout( "fade('"+p_id+"',"+p_diff+");", 10 );
                        else if ( 0 == g_opacity )
                        document.getElementById( p_id ).style.visibility = "visible";
                        }
                        [/KOD]
                        Last edited by jawbreaker; 2005-05-27, 21:20.
                        "OK, that's the last memory leak."

                        Kommentera


                        • #13
                          Haha... det fungerade.. men nu kom en annan bugg...! hehe...
                          så här går det nu ... Visa lager --> Dölj lager --> händer inget vad man än trycker på!!!
                          ----------------------------------
                          Tommie "toja" Jakobsson
                          www.stambokaj.se

                          Kommentera


                          • #14
                            Och jag som trodde att man programmerade bättre efter ett par öl. Så fel man kan ha, hehe. Jag uppdaterade inlägget ovan, så plocka funktionen igen och testa...
                            "OK, that's the last memory leak."

                            Kommentera


                            • #15
                              Haha... därför jag hoppade ölen.. tar nog en snart!! MEN FAAN... du är bäst!!!
                              ----------------------------------
                              Tommie "toja" Jakobsson
                              www.stambokaj.se

                              Kommentera

                              Working...
                              X