mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 13:29 Benutzername: Passwort: Auto-Login

Thema: remove hover-backgroundColor onClick vom 10.06.2011


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> remove hover-backgroundColor onClick
Autor Nachricht
Deridjian
Threadersteller

Dabei seit: 28.07.2010
Ort: Berlin
Alter: 39
Geschlecht: Männlich
Verfasst Fr 10.06.2011 01:37
Titel

remove hover-backgroundColor onClick

Antworten mit Zitat Zum Seitenanfang

Hallo liebe Mitleidende.

Ich habe da in meinem neuen Projekt ein paar Buttons (hurra!Buttons!)
Mit jQuery haben diese eine sehr geringfügige positions-animation verpasst bekommen mit .hover(function() und dann (this).animate({. Alles problemlos.
Die Buttons sind einfache DIVs mit einem anchor drin (Das sieht dann so aus):

<div id="kontaktcontainer">
MM<a class="pagelinks" id="kontakt" href="./kontakt.html" title="Interesse?" name="kontakt">Kontakt</a>
</div>

Jetzt hätte ich gerne dass bei Hover die Hintergrundfarbe des Buttons wechselt. (Keine Sorge! Ich weiß das ist simpel!) Ich könnte dies am einfachsten mit CSS und a:hover {background-color:rgba(x, x, x, a)} machen wenn ich den Anker als Block definiere und ihn auf die Größe des Buttons anpasse (Natürlich auch mit JS machbar).
Bei onClick und aktiviertem JS habe ich dann eine weitere kurze Animation (500ms) und ein setTimeout um nach 510ms den Link mit window.location weiterzugeben.

Mein Problem:
Wenn ich nach onClick die Maus nicht sofort vom Button wegbewege, ist sie nach wie vor im Hover-Zustand und belässt die eingetauschte Hintergrundfarbe. Das will ich nicht! (Sieht in meinem Fall schlimm aus, da die Animation den Button [das Div] vergrößert und damit den geschummelten Anker-Background bloßstellt)

Ich bräuchte also (meiner Meinung nach) eine JS Funktion, die mir beim Click den Hintergrund wieder löscht!

Ich hab's versucht mit .setAttribute/.removeAttribute ...
Ich hab's versucht mit .animate({ backgroundColor: 'XYZ' ...
Ich hab's versucht im Anker zu callen mit OnMouseOver/onClick
Ich hab's versucht extern zu callen mit doc.ready Funktionen...
Ich hab's gegoogelt...
Ich hab's gemedienstaltert...
Ich bin verzweifelt...

Hier übrigens noch ein Snippet mit dem ich extern ansteuern wollte, das nicht funktioniert hat, und bei dem das click event sowieso noch fehlt...(adaptiert von meiner positions-anim funktion, die wunderbar funktioniert):

$(function() {
MM$(
'a.pagelinks').hover(function() {
MMMM$(this)
.animate({
MMMMMMbackgroundColor: 'rgba(255, 255, 255, 0.4)',
MMMM}, {
MMMMMMqueue: false,
MMMMMMduration: 0
MMMM});
MM}
, function() {
MMMM$(this).animate({
MMMMMMbackgroundColor: 'none',
MMMM}, {
MMMMMMqueue: false,
MMMMMMduration: 0
MMMM});
MM});
});


Ich hoffe Ihr könnt mein Problem nachvollziehen und eventuell sogar den ein oder anderen Lösungsansatz bieten. Das wäre wundervoll.
Vielen lieben dank,

Marian


Zuletzt bearbeitet von Deridjian am Fr 10.06.2011 01:38, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
immerIch

Dabei seit: 19.10.2010
Ort: #mein{display:block}
Alter: 35
Geschlecht: Männlich
Verfasst Fr 10.06.2011 11:15
Titel

Antworten mit Zitat Zum Seitenanfang

Du kannst mit .animate nur Positions sowie Größenangaben animieren. (top, left, right, bottom, height, width, margin-top ....) ...

Zitat:
All animated properties should be animated to a single numeric value, except as noted below; most properties that are non-numeric cannot be animated using basic jQuery functionality. (For example, width, height, or left can be animated but background-color cannot be.) Property values are treated as a number of pixels unless otherwise specified. The units em and % can be specified where applicable.

siehe hier

Ziemlich zusammengewurschtelt, du machst dir das Leben unnötig schwer. lies hierzu mal genauer die jquery-Doku.

Css-Eigenschaften können mit
Code:
$('element').css('eigenschaft','wert');

bzw. bei mehreren eigenschaften mit
Code:
$('element').css({'eigenschaft1':'wert1', 'eigenschaft2':'wert2', ...});

geändert werden.


Gruß


Zuletzt bearbeitet von immerIch am Fr 10.06.2011 11:18, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Deridjian
Threadersteller

Dabei seit: 28.07.2010
Ort: Berlin
Alter: 39
Geschlecht: Männlich
Verfasst Sa 11.06.2011 19:52
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo ImmerIch,

danke erstmal für die Klarstellung von .animate Das hatte ich bisher wohl geschickterweise überlesen...

Dennoch ist mein Problem ja garnicht den Hover-Effekt zu erstellen, sondern den Hover-Effekt bei Click zu stoppen. Also so, dass es im Prinzip nach Click überhaupt kein Hover mehr gibt.

Hoffe ich konnte mich erklären Lächel

Gruß
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
pantonine

Dabei seit: 03.03.2011
Ort: gehen Sie bitte weiter…
Alter: -
Geschlecht: -
Verfasst Sa 11.06.2011 19:56
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
.stop()
Stop the currently-running animation on the matched elements.
  View user's profile Private Nachricht senden
 
Ähnliche Themen onclick-Event bei onclick dieses Elements ändern
[jQuery] - animate/backgroundColor
hover-Button/hover-Bild wird darunter eingefügt
Zufallsbild mit Onclick...
onClick Handler
JS - Onclick in PHP-DB-Abfrage...
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.