[Javascript] CSS Werte ändern und CSS Werte in if-Abfrage

Hallo!

Ich hab verschiedene Fragen, da ich noch eher so der Javascript-Noob bin. :smiley:

  1. Ich hab mir eine Funktion geschrieben die “border-top” ändern soll, wie macht man´s richtig, so funktioniert es nicht.
        function over() {
          $('a').animate(
            {
            "borderTopColor": "#FF0069"
            }, 
          250
          );
        }
  1. Im obenstehenden Code steht “$(‘a’)”. Das heißt, dass also das a-Element devon betroffen ist, wenn die Funktion ausgeführt wird. Die Funktion wird mittels
onMouseOver="over();"

aufgerufen. Nun möchte ich, dass nicht alle a-Element betroffen sind, sondern nur das, was die Funktion aufruft.

  1. Ich habe eine if-Abfrage, die Bedingung soll sein, das “margin-top: -250Px” ist. Die Abfrage:
 if (BEDINGUNG)
        {
          $('#opencontact').click(function() {
            $('#contact').animate(
              {
              "marginTop": "0Px"
              }, 
            450
            );
          });
        }
        else
        {
          $('#opencontact').click(function() {
            $('#contact').animate(
              {
              "marginTop": "-2500Px"
              }, 
            450
            );
          });
        }

Danke schonmal für eure Antworten! Ich hoffe, das diese simplen Probleme von euch gelöst werden können. :wink:

Grüße

Das mit dem Hovern machst du am besten über eine Klasse und mit jQuery dann folgendermaßen:

$("a.hover-it").mouseover(function()
{
	$(this).animate({"borderTopColor": "#FF0069"}, 250);
}

(Möglicherweise brauchst du für die Animation von Farben ein jQuery-Plugin)

Um über jQuery CSS-Eigenschaften auszulesen gibt es $(element).css(“CSS-Eigenschaft”).

Ok, hetzt hab ich

      if ($(contact).css("margin-top: -350Px"))
        {
          $('#opencontact').click(function() {
            $('#contact').animate(
              {
              marginTop: 0
              }, 
            450
            );
          });
        }
        else (contact.style.height != 0)
        {
          $('#opencontact').click(function() {
            $('#contact').animate(
              {
              marginTop: -350
              }, 
            450
            );
          });
        }

aber es bewegt sich nichts. Das muss auch an der if-Abfrage liegen, da die Funktion an sich funktioniert. :smiley: Mach ich i.was falsch?

Und müsste

      function over() {
          $(this).animate(
            {
            "borderTop": "#FF0069 10Px solid"
            }, 
          250
          );
        }

das nicht auch funktionieren?

PS: Was für ein PlugIn bräuchte ich denn? Ich hab gerade mal versucht das zu durchschauen… Da gibt es ja unmengen. :smiley:

PPS: Hab grade mal das hier installiert. Funktioniert aber nicht.

Die over()-Funktion dürfte nicht funktionieren, ich lasse mich da aber gerne eines besseren belehren. (Mal davon abgesehen halte ich die Variante mit der Klasse (im Beispiel “hover-it” eleganter.)

Deine If-Abfragen sehen etwas merkwürdig aus (gibt es eine Variable contact?) und hinter else kommen keine weiteren Bedingung, das ginge hinter else if.

Dann noch zum Plugin: Ich glaube nicht das es am Plugin liegt, dass die Animation noch nicht funktioniert :wink:

Welchen Browser benutzt du?

Ich benutze Firefox! :wink:

Nein es gibt keine Variable Contact. Oh, ja, sch**** else if. :smiley: Mist, sowas peinliches. :smiley: Ok, ich probiers nochmal.

Mir Klassen meint ihr das class-Attribut, oder?

Bingo ^^
Hast du dich mal mit Selektoren in jQuery beschäftigt?

Nein, das hab ich nicht. :smiley: Aber das ist das, was mich in den Wahnsinn treibt. :smiley: Vielen dank für den Link! :slight_smile: Genau das was mir i.wie fehlte! :smiley: :wink:

//

Ein blauer Kasten? :smiley:

Ne, psp-master ist der, dessen Account gesperrt wurde, und er postet nun etwas Spam und Frust ins Forum. Vielleicht schreibst du kurz einem Moderator eine PM und meldest ihm das, sodass man das hier entfernen kann. Die Flash-Dateien und den User.

Mit :motz: Grüßen
Mgier
edit: Kann schon sein, dass du sauer bist. Aber Aggressionen auf Kosten anderer abzulassen, ist bestimmt nicht der richtige Weg. Dafür gibt’s Ego Shooter, Desktop Zerstörer, Box-Säcke, oder wenns de naturnahe Version sein soll, Felder, über die man Steine schleudern kann, ohne jemanden zu schädigen…

hi,

ja, so siehts aus. Zum Thema:

…versteh ich da was falsch, oder ließe sich das nicht einfach per CSS lösen?

a:hover { border-top: 1px solid #123; } …?

Bzw. für eine bestimmte Klasse an Links einfach nur klassenname:hover { … }

Sollte jetzt eben nur eine Klasse betroffen sein, die da für eine Bedingung zutrifft, so könnte man bei der Bedingung doch einfach den Klassennamen der Links ändern, woraufhin dann die CSS-Variante greifen würde.

ciao

@miro: Na klar ließe sich das über CSS lösen, so hab ich es ja auch bisjetzt gemacht, nur möchte ich halt den Übergang via animate animieren. :wink:

@denusermitdemblauenkasten: Süß, hat mich nicht wirklich gestört. :smiley: