Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
Deridjian
Threadersteller
Dabei seit: 28.07.2010
Ort: Berlin
Alter: 39
Geschlecht:
|
Verfasst Fr 10.06.2011 01:37
Titel remove hover-backgroundColor onClick |
|
|
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
|
|
|
|
|
immerIch
Dabei seit: 19.10.2010
Ort: #mein{display:block}
Alter: 35
Geschlecht:
|
Verfasst Fr 10.06.2011 11:15
Titel
|
|
|
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
|
|
|
|
|
Anzeige
|
|
|
Deridjian
Threadersteller
Dabei seit: 28.07.2010
Ort: Berlin
Alter: 39
Geschlecht:
|
Verfasst Sa 11.06.2011 19:52
Titel
|
|
|
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
Gruß
|
|
|
|
|
pantonine
Dabei seit: 03.03.2011
Ort: gehen Sie bitte weiter…
Alter: -
Geschlecht: -
|
Verfasst Sa 11.06.2011 19:56
Titel
|
|
|
Zitat: | .stop()
Stop the currently-running animation on the matched elements.
|
|
|
|
|
|
|
|
|
Ä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...
|
|
|
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.
|
|