Block verändern wenn Maus über Menueintrag schwebt.
am 29.06.2011 - 14:08 Uhr in
Ich habe oben in meiner Seite in Menu, rechts davon habe ich Platz für einen Block. In diesem Block soll ein kurzer Satz angezeigt werden, als Erklärung zum gewählten Menueintrag. Was bereits funktioniert ist, dass wenn ich auf den Menueintrag klicke, der Block mit dem richtigen Text angezeigt wird.
Nun möchte ich gerne einen Schritt weitergehen. Ist es möglich, dass der Blocktext oder evtl. auch der gesamte Block mit dem entsprechenden Blocktext gefüllt und angezeigt wird, sobald ich mit der Maus über den jeweiligen Menueintrag fahre?
Gibt es einen Trick, mit welchem man das machen könnte? Ein Modul?
Was nicht geht: Ich kann das ganze nicht fix ins Theme eincoden - die Webseite ist mehrsprachig, d.h. ich kann keine fixen Strings im Theme ausgeben.
Gruss Benks
- Anmelden oder Registrieren um Kommentare zu schreiben
Das geht mittels JavaScript
am 29.06.2011 - 15:44 Uhr
Das geht mittels JavaScript bzw. jQuery. Da wirst Du dich aber etwas intensiever mit befassen müssen. An den Menü-Items muß im Code ein onmausover angebracht sein sowie ein onmausout. Mit diesen beiden Events läßt sich das Verhalten steuern. Eine JavaScript-Funktion muß dann den gewünschten Text in den Block einfügen bzw wieder wegnehmen. Am einfachsten lädst Du alle Texte mit der CSS-Einstellung display:none und schaltest dann sichtbar/unsichtbar mittels JavaScript.
Beste Grüße
Werner
Ok, ich habe mir schon
am 30.06.2011 - 10:27 Uhr
Ok, ich habe mir schon gedacht, dass es dazu etwas JavaScript brauchen wird. Mir ist aber noch nicht ganz klar, wie das von Seiten von Drupal gehen soll. (Der Text muss aus Drupal kommen, damit der Text geändert, bzw. übersetzt werden kann)
Ich werde also für jeden Menueintrag einen Block mit dem Text erstellen und alle diese Blöcke am gewünschten Ort ausgeben. Jeder Block kommt dabei mittels Theming in ein Div mit display:none. OnMouseOver/OnMouseOut mache ich das jeweilige Div sichtbar und der Block wird angezeigt.
Was mir aber noch nicht klar ist: Wie weiss ich von JavaScript aus, welches Div welchen Block enthält? Kann ich Drupal irgendwie sagen, es soll den Blocknamen in das Id des divs schreiben oder wie geht das?
Hi, Drupal schreib
am 30.06.2011 - 10:46 Uhr
Hi,
Drupal schreib automatisch den Blocknamen (und nummer) in den DIV ID.
Am besten Du benutzt den Firebug um die DIV IDs anzusehen.
Lieber Gruss
Ich habe mir das Html mit
am 05.07.2011 - 13:43 Uhr
Ich habe mir das Html mit Firebug angesehen. Drupal schreibt nur ins DIV ID block-block-1. Kann man irgendwo einstellen, dass er den Namen ins Div schreibt?
Bau in Deinem Theme in die
am 05.07.2011 - 22:33 Uhr
Bau in Deinem Theme in die template.php-Datei eine preprocess_block-Funktion ein und setze Dir den Namen des Blocks als zusätzliche Variable für Dein Block-Template (block.tpl.php) in Deinem Theme. Dort kannst Du dann den Namen als zusätzliche Klasse verarbeiten. Mit dem namen als ID wäre ich allerdings vorsichtig, da der Blocknamen nicht eindeutig sein muß, die ID aber wohl.
Beste Grüße
Werner