Ich erstelle eine Tabelle mit Anrufraten zum Erweitern / Reduzieren für das Unternehmen, für das ich arbeite. Ich habe derzeit eine Tabelle mit einer Schaltfläche darunter, um sie zu erweitern. Auf der Schaltfläche steht "Erweitern". Es ist funktionsfähig, außer dass ich die Schaltfläche brauche, um beim Klicken auf "Reduzieren" und beim erneuten Klicken natürlich wieder auf "Erweitern" zu wechseln. Die Schrift auf der Schaltfläche ist ein Hintergrundbild.
Im Grunde muss ich nur das Hintergrundbild eines Div ändern, wenn es angeklickt wird, außer wie ein Umschalter.
Aug 9 '10 at 0:42
bei SO Vielleicht ist das der Grund :(Antworten:
Wenn Sie den Trick ausführen möchten, schließen Sie ihn einfach in einem Klickereignis an das Element an
quelle
Ich persönlich würde nur den JavaScript-Code verwenden, um zwischen zwei Klassen zu wechseln.
Lassen Sie das CSS alles skizzieren, was Sie auf Ihrem div MINUS als Hintergrundregel benötigen, und fügen Sie dann zwei Klassen (z. B. erweitert und reduziert) als Regeln mit jeweils dem richtigen Hintergrundbild (oder der Hintergrundposition bei Verwendung eines Sprites) hinzu.
CSS mit verschiedenen Bildern
Oder CSS mit Image Sprite
Dann...
JavaScript-Code mit Bildern
JavaScript mit Sprite
Hinweis: Die elegante toggleClass funktioniert in Internet Explorer 6 nicht, aber die folgende
addClass
/removeClass
Methode funktioniert auch in dieser Situation einwandfreiDie eleganteste Lösung (leider nicht Internet Explorer 6-freundlich)
Soweit ich weiß, funktioniert diese Methode in allen Browsern, und ich würde mich beim Spielen mit CSS und Klassen viel wohler fühlen als bei URL-Änderungen im Skript.
quelle
Es gibt zwei verschiedene Möglichkeiten, ein Hintergrundbild-CSS mit jQuery zu ändern.
$('selector').css('backgroundImage','url(images/example.jpg)');
$('selector').css({'background-image':'url(images/example.jpg)'});
Achten Sie genau auf die Unterschiede. Im zweiten Schritt können Sie herkömmliches CSS verwenden und mehrere CSS-Eigenschaften miteinander verknüpfen.
quelle
Wenn Sie ein CSS-Sprite für die Hintergrundbilder verwenden, können Sie den Hintergrundversatz um +/- n Pixel erhöhen, je nachdem, ob Sie expandieren oder reduzieren. Kein Umschalten, aber näher dran, als die URLs von Hintergrundbildern wechseln zu müssen.
quelle
So mache ich das:
CSS
JS
quelle
.toggleClass()
Funktion.Eine Möglichkeit, dies zu tun, besteht darin, beide Bilder im HTML-Code in einem SPAN oder DIV abzulegen. Sie können die Standardeinstellung entweder mit CSS oder mit JS beim Laden der Seite ausblenden. Dann können Sie auf Klick umschalten. Hier ist ein ähnliches Beispiel, mit dem ich linke / untere Symbole in eine Liste einfüge:
quelle
Dies funktioniert in allen aktuellen Browsern unter WinXP. Grundsätzlich nur überprüfen, was das aktuelle Backgrond-Bild ist. Wenn es Bild1 ist, zeigen Sie Bild2, andernfalls zeigen Sie Bild1.
Das jsapi-Zeug lädt nur jQuery vom Google CDN (einfacher zum Testen einer anderen Datei auf dem Desktop).
Das Ersetzen dient der browserübergreifenden Kompatibilität (Oper und dh Anführungszeichen zur URL hinzufügen und Anführungszeichen für Firefox, Chrome und Safari entfernen).
quelle
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
Meins ist animiert:
quelle
Ich habe reguläre Ausdrücke verwendet, da ich einen relativen Pfad beibehalten und nicht die Funktion addClass hinzufügen wollte. Ich wollte es nur verschlungen machen, lol.
quelle
Alter Beitrag, aber dies würde es Ihnen ermöglichen, ein Bild-Sprite zu verwenden und die Wiederholung sowie die Positionierung anzupassen, indem Sie die Kurzform für die CSS-Eigenschaft verwenden (Hintergrund, Wiederholung, links oben).
quelle
Ich habe eine Lösung in einem Forum gefunden, Toggle Background Img .
quelle
CSS Sprites funktionieren am besten. Ich habe versucht, Klassen zu wechseln und die Eigenschaft 'background-image' mit jQuery zu bearbeiten. Es hat jedoch nicht funktioniert. Ich denke, das liegt daran, dass die Browser (zumindest das neueste stabile Chrome) ein bereits geladenes Bild nicht "neu laden" können.
Bonus: CSS-Sprites können schneller heruntergeladen und angezeigt werden. Weniger HTTP-Anforderungen bedeuten ein schnelleres Laden der Seite. Das Reduzieren der Anzahl von HTTP ist der beste Weg, um die Front-End-Leistung zu verbessern. Ich empfehle daher, diese Route immer zu wählen.
quelle
Dies ist eine ziemlich einfache Antwort, die den Hintergrund der Site mit einer Liste von Elementen ändert
quelle
Ich verwende immer auch einen Zeitstempel, um zu verhindern, dass Browser das Bild zwischenspeichern. Wenn der Benutzer beispielsweise seinen Avatar dreht, wird er häufig zwischengespeichert und scheint sich nicht zu ändern.
quelle