Avatar billede miss-g Seniormester
16. august 2004 - 17:54 Der er 20 kommentarer og
1 løsning

Nogen som kan gøre dette lille script færdigt?

Jeg vil gerne have dette lille script færdigt.

Det der mangler er at der kun må være 1 billede tydeligt ad gangen. Så når man klikker på et billede som har alpha på, bliver det tydeligt og alle andre har alpha og blå streg.

Håber at der er en som kan hjælpe.
http://www.nicolin.dk/div/mark.htm

Miss-G
Avatar billede roenving Novice
16. august 2004 - 18:06 #1
<script type="text/javascript">
var ie = (document.all && !window.opera)?1:0;
var op = (window.opera)?1:0;

function marker(e){
var all = getElementsByClassName('marker','IMG');
for(i=0;all.length>i;i++){
  if(all[i]!=e){
    if(ie)e.filters.alpha.opacity="30";
    if(!op)e.style.MozOpacity = "0.3";
  }
}

ch=e.value=(e.value=="on")?"off":"on";

if(ie)e.filters.alpha.opacity=(ch=="on")?"100":"30";
else if(!op)e.style.MozOpacity = (ch=="on")?"1.0":"0.3";
for(;e.parentNode;e=e.parentNode)if(e.tagName=="TABLE"){e.style.borderColor=(ch=="on")?"#FFCC00":"#0066CC";break;}
}
function getElementsByClassName(c,t,e){
  switch(getElementsByClassName.arguments.length){
    case 0:
      return null;
    case 1:
      t = '*';
      e = document;
      break;
    case 2:
      e = document;
  }
  var r = new Array(),tags = e.getElementsByTagName(t);
  for(i=0;tags.length>i;i++){
    if(tags[i].className==c)r[r.length] = tags[i];
  }
  return (r.length>0)?r:null;
}
</script>

-- og så har du en fejl i stylesheetet:

.marker {
    FILTER: alpha(opacity=30); -moz-opacity: 0.3;
}

-- en meget vigtig detalje, da det ellers i Gecko-browserne først ser rigtigt ud, når man har trykket to gange på hvert billede ...

-- iøvrigt vil jeg da også anbefale, at du vænner dig til at bruge gåseøjne om alle properties samt skriver _alt_ i tags, som ikke er properties med små bogstaver, så det vil være nemt at konvertere til xhtml den dag, hvor det er nødvendigt !-)
Avatar billede roenving Novice
16. august 2004 - 18:14 #2
Hov, for copy/paste ...

-- og der skal selvfølgelig også en linje på, som sætter dem til off:

for(i=0;all.length>i;i++){
  if(all[i]!=e){
    if(ie)all[i].filters.alpha.opacity="30";
    else if(!op)all[i].style.MozOpacity = "0.3";
    all[i].value = "off";
  }
}
Avatar billede pezzo Nybegynder
16. august 2004 - 19:07 #3
Har lige prøvet scriptet da synes det kunne være rart med sådan en funktion, men hvordan ser den fulde kode ud kan ikke lige få det flettet sammen så det virker?
Avatar billede miss-g Seniormester
16. august 2004 - 19:38 #4
Ja roenving - det vil være en stor hjælp, hvis du kan flette din kode ind i min, så det virker. Har somsagt ikke forstand på javascript. Første del fik jeg også lavet i eksperten, men "manden" gjorde den ikke færdig.
Avatar billede roenving Novice
16. august 2004 - 19:41 #5
Du skal tage det som står imellem <script> og </script> og udskifte med det jeg har skrevet:

<script type="text/javascript">
var ie = (document.all && !window.opera)?1:0;
var op = (window.opera)?1:0;

function marker(e){
var all = getElementsByClassName('marker','IMG');
for(i=0;all.length>i;i++){
  if(all[i]!=e){
    if(ie)all[i].filters.alpha.opacity="30";
    else if(!op)all[i].style.MozOpacity = "0.3";
    all[i].value = "off";
  }
}
ch=e.value=(e.value=="on")?"off":"on";

if(ie)e.filters.alpha.opacity=(ch=="on")?"100":"30";
else if(!op)e.style.MozOpacity = (ch=="on")?"1.0":"0.3";
for(;e.parentNode;e=e.parentNode)if(e.tagName=="TABLE"){e.style.borderColor=(ch=="on")?"#FFCC00":"#0066CC";break;}
}
function getElementsByClassName(c,t,e){
  switch(getElementsByClassName.arguments.length){
    case 0:
      return null;
    case 1:
      t = '*';
      e = document;
      break;
    case 2:
      e = document;
  }
  var r = new Array(),tags = e.getElementsByTagName(t);
  for(i=0;tags.length>i;i++){
    if(tags[i].className==c)r[r.length] = tags[i];
  }
  return (r.length>0)?r:null;
}
</script>
Avatar billede miss-g Seniormester
16. august 2004 - 19:43 #6
Jeps nu virker det. Hvad er det for en fejl der er i stylesheetet?

<STYLE type=text/css>.marker {
    FILTER: alpha(opacity=30); moz-opacity: 0.3
}
.border {
    BORDER-RIGHT: #003C64 1px solid; BORDER-TOP: #003C64 1px solid; BORDER-LEFT: #003C64 1px solid; BORDER-BOTTOM: #003C64 1px solid
}
</STYLE>
Avatar billede miss-g Seniormester
16. august 2004 - 19:44 #7
Øh, det virker med alpha delen, men min border bliver ikke blå igen....?
Avatar billede miss-g Seniormester
16. august 2004 - 19:50 #8
Du ville måske hellere have border skulle se sådan ud:

.border {
    border: 1px solid #003c64;
}

Rettet! Men den sætter altså ikke den blå border på igen, når man vælger en anden firkant.
Avatar billede roenving Novice
16. august 2004 - 19:51 #9
Der skal være en bindestreg (eller et minus) foran moz-osv.

-- og den blå havde jeg ikke kigget på:

<script type="text/javascript">
var ie = (document.all && !window.opera)?1:0;
var op = (window.opera)?1:0;

function marker(e){
var all = getElementsByClassName('marker','IMG');
for(i=0;all.length>i;i++){
  if(all[i]!=e){
    if(ie)all[i].filters.alpha.opacity="30";
    else if(!op)all[i].style.MozOpacity = "0.3";
    all[i].value = "off";
    for(e=all[i];e.parentNode;e=e.parentNode)if(e.tagName=="TABLE"){e.style.borderColor="#0066CC";break;}
  }
}
ch=e.value=(e.value=="on")?"off":"on";

if(ie)e.filters.alpha.opacity=(ch=="on")?"100":"30";
else if(!op)e.style.MozOpacity = (ch=="on")?"1.0":"0.3";
for(;e.parentNode;e=e.parentNode)if(e.tagName=="TABLE"){e.style.borderColor=(ch=="on")?"#FFCC00":"#0066CC";break;}
}
function getElementsByClassName(c,t,e){
  switch(getElementsByClassName.arguments.length){
    case 0:
      return null;
    case 1:
      t = '*';
      e = document;
      break;
    case 2:
      e = document;
  }
  var r = new Array(),tags = e.getElementsByTagName(t);
  for(i=0;tags.length>i;i++){
    if(tags[i].className==c)r[r.length] = tags[i];
  }
  return (r.length>0)?r:null;
}
</script>
Avatar billede miss-g Seniormester
16. august 2004 - 19:52 #10
Ok - så CSS er nu:

<STYLE type=text/css>.marker {
    FILTER: alpha(opacity=30); -moz-opacity: 0.3
}

.border {
    border: 1px solid #003c64;
}
</STYLE>

Rigtigt?
Avatar billede roenving Novice
16. august 2004 - 19:54 #11
Jepz !-)
Avatar billede miss-g Seniormester
16. august 2004 - 19:55 #12
Ok - har rettet fejlene og uploaded.

Men den kode du lige har smidt nu, skal den erstattes af den første? For kan ikke få det med border til at virke....
Avatar billede miss-g Seniormester
16. august 2004 - 19:56 #13
Vender tilbage senere.

Husk også at lægge et svar roenving. Du kan bare det møg!! *S*
Avatar billede roenving Novice
16. august 2004 - 19:57 #14
Jepz !-)
Avatar billede roenving Novice
16. august 2004 - 19:58 #15
-- jamen, så velbekomme '-)

-- og 19:57:16 var en kommentar til 19:55:19 ...
Avatar billede miss-g Seniormester
16. august 2004 - 22:39 #16
Aj - kan ikke få det til at virke. Har oploadet....
Avatar billede roenving Novice
17. august 2004 - 02:01 #17
Gaab, jeg havde jo også ødelagt en variabel uden at tænke over det ...

Starten af scriptet:

<script type="text/javascript">
var ie = (document.all && !window.opera)?1:0;
var op = (window.opera)?1:0;

function marker(e){
var all = getElementsByClassName('marker','IMG');
for(i=0;all.length>i;i++){
  if(all[i]!=e){
    if(ie)all[i].filters.alpha.opacity="30";
    else if(!op)all[i].style.MozOpacity = "0.3";
    all[i].value = "off";
    for(f=all[i];f.parentNode;f=f.parentNode)if(f.tagName=="TABLE"){e.style.borderColor="#0066CC";break;}
  }
}
Avatar billede miss-g Seniormester
17. august 2004 - 10:47 #18
Prøv lige igen når du har sovet.
Der mangler stadig noget. Har oploadet....

Det ville være meget smart hvis du lige testede dine koder inden *G*
Avatar billede roenving Novice
17. august 2004 - 12:51 #19
Problemet er jo at det ofte ikke er muligt at teste uden at lave en fuld download, så du vil rigtig mange gange støde på, at jeg laver småfejl ...

-- og een af grundene til at jeg faktisk ikke testede var, at jeg ikke gad at have den kode, du har fået et M$-program til at lave, på min maskine, fordi der både var voldsomt mange småfejl (som sikkert ikke betyder noget for visningen !-) og nogle måder at gøre det på, som jeg simpelthen ikke kan være med på !-)

-- og du kan jo prøve en gang at tælle, hvor mange detaljer, jeg har ændret, det har jeg ikke selv, men der er mange hundrede ændringer, så nu kan det lige holde til at have været på min computer ...

-- og den tilbageværende fejl var at jeg havde overset eet e i den linje, hvor jeg ændrede e til f !-)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<!-- saved from url=(0037)http://www.grunken.dk/exp/513760.html -->
<html>
<head>
  <title>Nicolin Grafik</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta content="MSHTML 6.00.2800.1400" name="GENERATOR">
  <style type="text/css">
    .marker {
      filter: alpha(opacity=30); -moz-opacity: 0.3;
    }
    .border {
      border: 1px solid #003c64;
    }
  </style>
  <script type="text/javascript">
    var ie = (document.all && !window.opera)?1:0;
    var op = (window.opera)?1:0;

    function marker(e){
      var all = getElementsByClassName('marker','IMG');
      for(i=0;all.length>i;i++){
        if(all[i]!=e){
          if(ie)all[i].filters.alpha.opacity="30";
          else if(!op)all[i].style.MozOpacity = "0.3";
          all[i].value = "off";
          for(f=all[i];f.parentNode;f=f.parentNode)if(f.tagName=="TABLE"){f.style.borderColor="#0066CC";break;}
        }
      }
      ch=e.value=(e.value=="on")?"off":"on";

      if(ie)e.filters.alpha.opacity=(ch=="on")?"100":"30";
      else if(!op)e.style.MozOpacity = (ch=="on")?"1.0":"0.3";
      for(;e.parentNode;e=e.parentNode)if(e.tagName=="TABLE"){e.style.borderColor=(ch=="on")?"#FFCC00":"#0066CC";break;}
    }
    function getElementsByClassName(c,t,e){
      switch(getElementsByClassName.arguments.length){
        case 0:
          return null;
        case 1:
          t = '*';
          e = document;
          break;
        case 2:
          e = document;
      }
      var r = new Array(),tags = e.getElementsByTagName(t);
      for(i=0;tags.length>i;i++){
        if(tags[i].className==c)r[r.length] = tags[i];
      }
      return (r.length>0)?r:null;
    }
  </script>

</head>
<body>
  <p>&nbsp;</p>
  <table cellspacing="0" cellpadding="5" width="288" align="center" border="0">
    <tbody>
      <tr>
        <td width="86">
          <table width="84" height="84" border="0" align="center" cellpadding="2" cellspacing="0" class="border">
            <tbody>
              <tr>
                <td>
                  <div align="center">
                    <img class="marker" onclick="marker(this)"; height="80" src="http://www.nicolin.dk/div/mark/no-picture.gif" width="80">
                  </div></td>
              </tr>
            </tbody>
          </table></td>
        <td width="86">
          <table class="border" cellspacing="0" cellpadding="2" align="center" border="0">
            <tbody>
              <tr>
                <td>
                  <div align="center">
                    <img class="marker" onclick="marker(this)"; height="80" src="http://www.nicolin.dk/div/mark/no-picture.gif" width="80">
                  </div></td>
              </tr>
            </tbody>
          </table></td>
        <td width="86">
          <table class="border" cellspacing="0" cellpadding="2" align="center" border="0">
            <tbody>
              <tr>
                <td>
                  <div align="center">
                    <img class="marker" onclick="marker(this)"; height="80" src="http://www.nicolin.dk/div/mark/no-picture.gif" width="80">
                  </div></td>
              </tr>
            </tbody>
          </table></td>
      </tr>
      <tr>
        <td colspan="3" style="font-family:verdana, arial, helvetica, sans-serif;font-size:x-small;">Klik på et billede for at markere det.</td>
      </tr>
    </tbody>
  </table>
  <div align="center"></div>
  <div align="center"></div>
</body>
</html>
Avatar billede miss-g Seniormester
17. august 2004 - 15:25 #20
Takker *S*
Avatar billede roenving Novice
17. august 2004 - 15:28 #21
-- og tak for point ;~}
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