Seite 2 von 3
#21 RE: Tooltips über bestimmten Textstellen von florian-zier 07.05.2008 15:02

avatar

Ich gehe jetzt mal davon aus, dass das nicht passieren sollte.

So wie ich gesehen habe, ist die Zeile

text-decoration:none;
vorhanden.

Ich habe aber einen Tooltip mal herausgepickt und habe da etwas im Quelltext gesehen.
Der Tooltip wird nur bei Links rot/rosa unterstrichen...

Wahrscheinlich liegt es an der Verschachtelung.
Der Link ist um den ganzen Tooltip samt Text herumgelegt. Dabei wird wahrscheinlich die Formatierung für Links im Tooltip selbst verwendet.
Da der Tooltip sowieso nicht angeklickt werden kann, sollte der Link innerhalb des Text-Bereiches definiert werden, der Überfahren wird.

Mein Foren-Code zur veranschaulichung:
[tipp][url=http://linkadresse.de]MouseOver-Text[/url][info]Tooltip-Text[/tipp]

#22 RE: Tooltips über bestimmten Textstellen von Wolfgang 07.05.2008 20:48

avatar

Hi Florian,
ich habe mir einen Wolf gesucht und an alles mögliche gedacht

Du hast recht, die Fehldarstellung verschwindet, wenn die gesamte Webadresse mit dem Tooltipp umschlossen wird.
So wie Du es unten im Beispiel gezeigt hast.

...

"text-decoration:none;" hatte ich eingesetzt, weil bei Links einmal der Unterstrich (für den Link) und die gepunktete Linie angezeigt wurde.
Mir war das zuviel.

Mit der korrekten Verschachtelung muste ich eine neue Zeile in die CSS einfügen.

.tooltip_text a {
text-decoration:none;
}


Gruß und Danke
Wolfgang

#23 RE: Tooltips über bestimmten Textstellen von Wolfgang 21.09.2013 09:03

avatar

Hallo Florian,
mit den "Verbesserungen und Erweiterungen" der Browser scheint sich immer etwas zu ändern!

Mir ist aufgefallen, dass die Tooltipps bei mir im IE wunderbar laufen. In den anderen Browsern hingegen sind sie um hunderte von Pixel nach links und nach unten verschoben. In den Foren wird geschrieben das "document.body.scrollTop" nicht mehr richtig ausgeführt wird oder liegt es an "document.all"? Der Blinker wollte mit "document.all" auch nicht funktionieren, aber mit "document.getElementsByTagName('blink')" lief er wieder (siehe hier: http://www.hilfe-tricks-tipps.de/t71f17-...moeglichen.html)!

Interessanterweise scheinen in Deinem Forum die Abweichung nicht so extrem zu sein, wie bei mir zu sein???
Durch das Business-Template bin ich mit JQuery auf den Geschmack gekommen. Ich habe hier sehr gute Tooltipps gefunden, aber bis jetzt noch nichts nachvollziehen können. Viele Möglichkeiten werden nicht im Zusammenhang dargestellt, mit vielen Optionen und Variationen. Es wird hier schon einiges vorausgesetzt! Vielleicht liegt es ja auch an den Versionen von JQuery.

Bis dann

#24 RE: Tooltips über bestimmten Textstellen von florian-zier 22.09.2013 22:44

avatar

Hallo Wolfgang,
das document.all war eher eine Browser-Weiche um festzustellen, welche Funktionen unterstützt werden (nur alte oder auch neuere). Die Verschiebungen sind bei mir nicht so groß, da ich im bisherigen Tooltip-Skript die Werte für IE, Opera und andere Browser wie Firefox bereits nach Umstellung auf das Business-Template einmal angepasst habe.

Das Problem ist die veränderte Verschachtelung der HTML-Elemente im Gegensatz zum Standard-Template. Ein Text mit Tooltip findet sich in vielen unterschiedlich positionierten Elementen (absolut, relativ, …) und die Position kann nicht direkt angegeben werden. Im Standard-Template konnte das dennoch mit einem geeigneten Versatz in Pixeln korrigiert werden. Danach wird ein absoluter Wert gebraucht, welcher denn Tooltip dann korrekt positioniert (Evtl. unter Berücksichtigung der Scroll-Position).
jQuery müsste die Postion aber nach den übergeordneten Elementen berechnen. Also vereinfacht z.B. die Text-Position im Beitrags-Container, dessen Position in der Flat-Ansicht des Threads und dann erst der Versatz zum Body. D.h. also, dass jQuery die genaue Position durch Prüfung der einzelnen Positionen in der Verschachtelung herausfindet.

Zusätzlich reagieren die Ausgaben von JS-Anweisungen wie scrollTop in unterschiedlichen Browsern auch noch etwas anders. Also selbst wenn man ein Skript schreibt, welches eben die Struktur komplett durchläuft, muss man evtl. auf Browser-Unterschiede achten. jQuery hat da glaube ich Anweisungen, welche in allen Browsern das gleiche Ergebnis liefern, diese habe ich jetzt spontan aber nicht mehr gefunden.

In Verbindung mit jQuery finde ich ja aber immer jQueryUI ganz gut, vieles lässt sich bereits damit abdecken ohne nochmals eine weitere Bibliothek zu benötigen. Andere Bibliotheken haben manchmal vielleicht ausgereifte Effekte für eine bestimmte Aktion, aber jQueryUI bietet für vieles gleichzeitig eine gute Basis und ist mit einer kleinen Anpassung an eigene Bedürfnisse die optimale Wahl. Praktischerweise ist dort bereits eine Funktionalität für jQueryUI-Tooltips vorhanden. Mit kleinen Anpassungen ist es sogar möglich, die alten Tooltips im Forum weiterhin zu unterstützen, die Foren-Codes müssen also nicht zwangsläufig abgeändert werden und es entfällt das Problem, dass alte Tooltips anders als neue aussehen bzw. positioniert sind.




Im Anhang findest du eine Testseite, mit einigen Funktionen, welche auch auf der Demoseite unterstützt werden. Das Resultat ist eine Art Mischung zwischen "Custom Content" (um HTML/BBCodes in Tooltips zu unterstützen), "Custom Animation" und "Track the Mouse" (mit Mausbewegung mitverschieben).

Die CSS-Anweisungen für die Testseite selbst und auch die jQuery-Beispiele kannst du später für das Forum entfernen, durch diese sieht der Seiteninhalt aber dem Beispiel auf der jQueryUI-Seite ähnlicher. Allenfalls die Anweisungen für ".map" müssen evtl. drinbleiben, falls du auch Google-Maps-Bilder für Orte unterstützen möchtest.

In der Klasse ".tooltip" (bereits durch das bisherige Skript im Forum vorhanden) reicht dann wohl auch nur noch die display-Anweisung, den Rest habe ich in der Testseite zur Orientierung einfach mal auskommentiert beibehalten. Im Forum sollte dieser Rest dann aber zugunsten der Übersichtlichkeit (und um weniger Daten zu übertragen) entfernt werden.




Das JavaScript in der Testseite kann dann auch noch nach deinen Bedürfnissen angepasst werden. Du kannst z.B. das Verschieben mit der Maus herausnehmen, der Tooltip bleibt dann an einer festen Position. Ebenso können die Effekte für das Ein- bzw. Ausblenden geändert, deren Geschwindigkeit angepasst oder komplett herausgenommen werden. Ich finde bereits den Standard-Effekt ziemlich gut, entferne also zumindest testweise mal die show und hide-Funktionen, ich habe sie nur zur Demonstration als mögliche Alternative eingebunden.

Weiterhin kannst du auch einzelne IF-Anweisungen nach dem Kommentar "weitere jQueryUI-Tooltips aus Beispiel" herausnehmen, je nachdem ob du eine der Funktionalitäten nicht verwenden möchtest. Entferne dann analog zu dem im IF abgefragten Element auch den Selektor aus der Variable items weiter oben.
Das wären die Anzeige eines Ortes auf einer kleinen Google-Maps-Karte, des Title-Attributes (meistens sowieso Standard, aber sonst nicht im gleichen Design) und des Alt-Attributs (sonst nur im IE als Tooltip), falls kein Title-Tag gesetzt ist.




Im Grunde hast du nun eine angepasste Tooltip-Funktion für dein Forum. Wie bereits erwähnt, funktionieren mit dem Skript die alten Tooltips weiterhin. Ein Problem könnte allerdings auftreten, vor allem wenn du das Skript der alten Tooltips herauswirfst. In den bisherigen BBCodes wurden folgende Anweisungen verwendet:

1
2
 
onMouseOver="tooltip_open(tip)"
onMouseOut="tooltip_close()"
 


Diese Event-Handler kannst du nun auch bedenkenlos aus den BBCodes entfernen, da sie nicht mehr gebraucht werden. Aber was ist mit den Beiträgen, in welchen noch die alten Tooltips verwendet werden? Diese würden beim Überfahren mit der Maus dann unbekannte Funktionen aufrufen. Die Lösung ist aber relativ einfach: Leere den Inhalt der betreffenden Funktionen. Sie können dann immer noch bei alten Tooltips aufgerufen werden, haben aber keinen Inhalt mehr, der das neue Skript stören könnte.

Um etwas konkreter zu werden, zeige ich mal kurz, wie das alte Skript reduziert werden kann.

Der folgende Block kann komplett entfernt werden:

1
2
3
4
5
6
 
var ttip = null;
function ttip_position(e) {
[…]
}
ttip_text = null;
ttip_breite_anfang = 0;
 



Diese Funktionen werden sicherheitshalber noch beibehalten, aber eben geleert um nicht zu stören:

1
2
 
function tooltip_open(tip) {}
function tooltip_close() {}
 



Beachte aber, ggf. die Funktion tooltip_insert() nicht aus Versehen zu entfernen. Sie ist bei mir noch dafür verantwortlich, den BBCode über die Symbolbar und spezielle Abfragen nach Text, URL und Tooltip in den Beitrag einzufügen.




Ich wollte bereits selbst das Skript der Tooltips anpassen, habe mich aber vor den umfangreichen Anpassungen gescheut, auch mit Blick darauf, dass dann evtl. alte Tooltips inkompatibel werden könnten. Bei der damaligen Anpassung des alten Skripts traten nämlich sehr viele Probleme auf und es war sehr mühsam, bis alle gängigen Browser ein brauchbares Ergebnis lieferten. Aber durch jQueryUI können eigene Anpassungen leicht eingepflegt werden und das damalige lästige Problem mit dem unterschiedlichen Setzen der Position entfällt.
Ich bin jetzt selbst geneigt dazu, die zusätzliche Bibliothek ins Forum aufzunehmen und die Tooltips über das neue Skript laufen zu lassen, wie evtl. weitere zukünftige Skripte auch.


Have Fun!

#25 RE: Tooltips über bestimmten Textstellen von Wolfgang 26.09.2013 09:01

avatar

Wow!
Absolute Klasse!

Kleiner Nachteil:
Sehr große CSS!
Die Tooltipps ruckeln etwas (liegt das an JQuery oder an der großen CSS?).
Ich habe schon mal versucht, nur die nötigsten CSS-Angaben herauszusuchen. Sehr mühselig.

Besten Dank

#26 RE: Tooltips über bestimmten Textstellen von Wolfgang 27.09.2013 01:37

avatar

Hallo Florian,
ich habe schon einiges gefunden.
Geniales Script! Wenn Tooltipps in den Randbereich gelangen, werden sie super umgesetzt!

Die mitgelieferte CSS ist riesig groß und wahrscheinlich für alle Demos gedacht.
Ich habe die Einträge herausgesucht, die nur für die Tooltipps im Forum notwendig sind.

<style type="text/css">
/*Tooltipps mit title*/
body {font-size: 75%;background-color:#ffffff;}
body .ui-tooltip {border: 2px solid #A2A2A2;}
.ui-tooltip {z-index: 9999;position: absolute;max-width: 500px;padding:5px 15px 5px 15px;color:#0000aa;box-shadow: 3px 3px 6px #aaaaaa;}
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr {border-radius: 10px;}
.ui-widget-content {background: #ffffff;}
.tooltipp_title {cursor:pointer;}

/*Alte Tooltipps in Beiträgen*/
.tooltip {display:none;max-width: 500px;}
.tooltip_text {cursor:pointer;border-bottom:1px dotted blue;}
.tooltip_text a {text-decoration:none;}
</style>


Unruhe bringt der Eintrag für den Abstand der Tooltipps zum Mauszeiger.
Hier wird wohl zu viel Rechenzeit benötigt. Habe ich jetzt weggelassen.

.ui-tooltip {margin-top:15px;z-index: 9999;position: absolute;max-width: 500px;padding:5px 15px 5px 15px;color:#0000aa;box-shadow: 3px 3px 6px #aaaaaa;}

Das Script liefert auch eine Ein- und Ausblendverzögerung. Hierrüber kann man unnötiges aufblitzen von Tooltipps verhindern. Ich habe die Werte erhöht!

// Ein-/Ausblend-Effekte:
show: {
effect: 'slideDown',
delay: 300
},
hide: {
effect: 'blind',
delay: 100
},



Auch hier in meinem Forum: Professionelle Tooltipps mit "JQuery"

Nochmals ganz herzlichen Dank.
Gruß
Wolfgang

#27 RE: Tooltips über bestimmten Textstellen von florian-zier 27.09.2013 23:44

avatar

Hallo Wolfgang,
die mitgelieferte CSS ist so groß, damit alle von jQueryUI mitgelieferten Möglichkeiten korrekt gestylt werden können. Die Bibliothek bietet natürlich weit mehr Möglichkeiten als nur die Tooltips. Theoretisch könntest du auch aus der JS-Datei von jQueryUI nur die benötigten Elemente verwenden. Aber das wäre wie bei der CSS-Datei sehr umständlich.

Immerhin hast du noch herausgefunden, wie das Ruckeln vermindert werden kann. Womöglich lag es weniger an der CSS direkt, als mehr am Skript, welches durch die Ausführung anderer JavaScripts dann letztlich die CSS-Änderungen nur allmählich vornehmen konnte. Ich persönlich finde ja die Einblendung ohne spezielle Effekte auch ganz hübsch, es sieht dann leicht nach FadeIn und -Out aus.

Auf jeden Fall sieht dein Tooltip richtig top aus.

#28 RE: Tooltips über bestimmten Textstellen von Wolfgang 28.09.2013 11:36

avatar

Hallo Florian,
ich muss sagen, dass Fade-in/out würde ich auch kürzer haben wollen. Besonders das Fade-Out könnte gleich null sein !!! Wo kann ich die Zeiten verändern. Habe es bis jetzt nicht gefunden.
Mit den Werten "slideDown" und "blind" kann man Ansprechzeit und Haltezeit einstellen (IE), nicht unbedingt das "Faden".
Beweis: Selbst wenn man die Werte auf Null setzt, bleibt das Verhalten von Fade in/out gleich.

// Ein-/Ausblend-Effekte:
show: {
effect: 'slideDown',
delay: 0
},
hide: {
effect: 'blind',
delay: 0
},

#29 RE: Tooltips über bestimmten Textstellen von florian-zier 28.09.2013 23:59

avatar

Hallo Wolfgang,
streng genommen dürftest du mit den Slide-Effekten keine Fade-Animationen zu sehen bekommen. Du kannst im Moment also nur die Slide-Animation verkürzen.
Das blind könntest du übrigens auch noch durch slideUp austauschen, macht in Verbindung mit slideDown eigentlich mehr Sinn. Optisch konnte ich keinen Unterschied feststellen.

Nur wenn du die Blöcke von show und hide entfernst, wird die Standard-Animation (müsste fade sein) verwendet. Ansonsten wir diese komplett ersetzt.
Setze sie jeweils auf null, um die Animationen komplett zu deaktivieren, Tooltips werden dann sofort hart eingeblendet und verschwinden auch augenblicklich.

Wenn du mal gezielt nur einen Fade-Effekt probieren möchtest, ersetzt du einfach die Slides durch Fades:

1
2
3
4
5
6
7
8
 
show: {
effect: 'fade',
delay: 50
},
hide: {
effect: 'fade',
delay: 50
},
 


Damit hast du auch die zeitliche Kontrolle über das richtige Faden. Andere Animationen sind dann sonst aber nicht mehr auf dem Tooltip.




Ich habe noch etwas getüftelt und herausgekommen ist eine Alternative welche beide Effekte miteinander kombiniert. Hier sind jetzt definitiv Fade-Effekte enthalten, selbst wenn sie jetzt nichts für dich sind, findet vielleicht jemand anderes daran gefallen, jedenfalls besser als im Festplatten-Nirvana zu verschwinden. Es ist einfach nur eine der vielen Möglichkeiten, welche sich mit jQuery(UI) ergeben.

Keine Ahnung, ob es auch einfacher funktioniert. Aber viele Varianten haben den Tooltip gar nicht erst eingeblendet, selbst funktionierende Beispiele aus dem Netz. Gibt wohl unterschiede zwischen dem Ein-/Ausblenden eines einfachen Containers und einem eigentlich bereits mit Steuerung belegten Tooltip. Eine 1:1 Übernahme war also nicht ganz möglich, trotzdem war es manchmal eine Hilfe. Nachdem das Einblenden endlich funktionierte, haperte es noch mit dem Ausblenden. Komischerweise musste ich ein kurzes Delay für hide definieren, da der Tooltip sonst sofort verschwunden wäre. Aber der Effekt wird dann sowieso sofort abgebrochen. Auch werden Anforderungen an opacity und height gestellt, auf welche vorher nicht einfach automatisch ein Reset durchgeführt wird, sondern man diese manuell setzen muss. Jetzt sind die Handler für open und close dafür verantwortlich, die Animation zu steuern.

Der Block, um einen gekoppelten Slide- und Fade-Effekt zu erreichen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
show: null,
hide: { delay: 1 }, // nötig, damit close funktioniert
open: function(event, ui) {
var tooltipHeight = ui.tooltip.css('height');
ui.tooltip.stop(true, true)
.css('opacity', 0).css('height', '0px')
.animate(
{
opacity: 1,
height: tooltipHeight
},
300
);
},
close: function(event, ui) {
ui.tooltip.stop(true, true)
.animate(
{
opacity: 0.0,
height: '0px'
},
{
duration: 300,
complete: function(){
$(this).remove();
}
}
);
},
 


Du kannst für das Ein- und Ausblenden unterschiedliche Zeiten einstellen. Allerdings kannst du nicht die Zeiten für die beiden Effekte getrennt einstellen, also das Faden dauert genauso lange wie das Sliden. Wie man die Effekte zeitgleich beginnen aber unterschiedlich lange laufen lassen kann, wüsste ich jetzt gerade nicht.

Eine Ausführung nacheinander wäre zwar einfacher gewesen, sieht aber nicht gut aus und macht kaum Sinn. Der Slide-Effekt würde man ja gar nicht sehen, solange die Sichtbarkeit noch auf 0 steht. Ebenso sieht man keine Einblendung, wenn der Container noch 0px Höhe hat.


Zum Testen habe ich die abgeänderte Version im Anhang hochgeladen. Ich würde sagen, bei einer Zeiteinstellung von ca. einer Sekunde sieht man bereits sehr deutlich den Effekt, gut zum Entwickeln. Natürlich sind für den Produktiv-Einsatz kürzere Zeiten geeignet …





P.S.: Einige Ruckler könnten noch auftreten (wie bisher auch schon), wenn ein Tooltip mit Google-Map geöffnet wird. Die Ursache liegt darin begründet, dass die Bilddatei noch nicht im Cache liegt und deswegen erstmal vom Google-Server geladen werden muss. Ist halt leider so …


P.P.S.:

Hier noch ein paar Links, die mir auch ein wenig weitergeholfen haben:

• Benutzerdefinierte Tooltip-Animationen
• Gleichzeitiges FadeIn und SlideDown
• Dokumentation für Animationen
• API-Dokumentation für Tooltips

#30 RE: Tooltips über bestimmten Textstellen von Wolfgang 29.09.2013 04:12

avatar

Perfekt!!!

Hey Florian,
ich bin begeistert, was so in JQuery steckt.

Ich habe die Effekte für "Show" mit "slide", slideDown, fade, fadeDown, Standard (leichtes fade-in/out) und Dein Script (slide-in /fade-out) ausprobiert. Alle wirklich klasse!
Alle Effekte kann man auch für "hide", fürs Ausblenden benutzen.

Ich habe mich dafür entschieden, den Tooltext verzögert, aber animiert (Favorit: slideDown) einzublenden und schnell wieder auszublenden. Man kann mit JQuery wirklich alles umsetzen. Ich habe etwas probiert und folgende, perfekte Einstellung für mich gefunden!!!
Würde man für den Ausblend-Effekt nichts eintragen, wird (wie Du sagst) der Standard aktiv. Deswegen "none". Das gleich gilt für die Zeit "delay" (Standard ca. 50).

1
2
3
4
5
6
7
8
9
10
11
 

// Ein-/Ausblend-Effekte:
show: {
effect: 'slideDown',
delay: 500
},
hide: {
effect: 'none',
delay: 0
},
 
 



Bis dann und besten Dank.
Macht echt Spaß auf Entdeckungstour zu gehen (mit Deiner Hilfe).


Bis dann und viele Grüße aus Hannover
Wolfgang

#31 RE: Tooltips über bestimmten Textstellen von Triple M 08.10.2013 08:38

avatar

Hallo Wolfgang und Florian, ich habe das hier Intensiv Verfolgt. Der Tooltip ist mal Richtig genial. Nur ich bekomme das bei mir nicht Hin. Habe es Mehrfach versucht aber Irgendwas mache ich da wohl nicht Richtig.

Ich verstehe z.b. nicht wie ich den Code (Ersetze....mit....) Einsetzen muß.

Könnt ihr mir das noch mal Erklären wie ich wo was einfügen muß?

Wolfgang auch mit deinen Tips in deinen Forum komme ich nicht weiter.

Ach ich möchte es bei meinen Foren Nutzen beide Business Templates.

Allerdings bin ich wohl ein wenig zu "Doof" dafür darum die bitte nach einer Punkt für Punkt Erklärung.

#32 RE: Tooltips über bestimmten Textstellen von florian-zier 09.10.2013 00:59

avatar

Hallo Mario,
ich werde versuchen, nochmals den letzten Stand des Skriptes zusammenzutragen.


Zuerst werden die nötigen Styles und Skripte verfügbar gemacht. Bei den meisten Nutzern empfiehlt es sich, die Änderungen einfach direkt ins Template einzutragen. Erfahrene Nutzer können die direkten Template-Änderungen gerne mit globalen Variablen reduzieren, die nötigen Änderungen sollte man dann aber selbst problemlos durchführen können.

Ansonsten bleiben wir bei dem direkten Einfügen ins Template, dazu wird das Element Obere Leiste editiert:
Admin-Bereich -> Template Entwicklung -> [edit] -> Obere Leiste

Dort suchen wir als erstes die Stelle, an der jQuery eingebunden wird (Versionsnummer ggf. abweichend):

1
 
<script type="text/javascript" src="http://img.homepagemodules.de/ds/static/jquery/min/jquery-1.7.1.min.js"></script>
 


Im Template ist statt dem Link evtl. nur eine Variable eingetragen, dann sieht die Stelle in etwa so aus:

1
 
<script type="text/javascript" src="{{link_jquery}}"></script>
 



Nach entsprechender Zeile fügen wir nun jQueryUI hinzu:

1
2
3
4
 
<!-- jQueryUI-Theme -->
<link type="text/css" rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<!-- jQueryUI-Skript -->
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
 






Mit jQueryUI sind nun u.a. die Grundlagen für die Tooltips geschaffen. Fehlen noch die Styles, damit die Tooltips richtig dargestellt werden (z.B. die Karte von Google) und auch nicht bereits vorab direkt im Beitrags-Text zu sehen sind. Ebenso kommen noch Skripte hinzu, um die Tooltips beim Hovern eines entsprechenden Textes einzublenden und auch den Forencode über die Symbolbar hinzufügen zu können.

Suchen wir also das schließende Head-Tag (< /head> ohne Leerstelle) und fügen noch folgendes davor ein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
 

<!-- Style für Tooltips -->
<style type="text/css">
/* Tooltip-Container nicht
in Text anzeigen */
.tooltip {
display:none;
}
/* Hilfe-Cursor und Unterstreichen
von Text mit Tooltip */
.tooltip_text, .tooltip_text a {
cursor: help;
border-bottom: 1px dotted;
}
/* GoogleMap in Tooltip */
.map {
width: 350px;
height: 350px;
}
/* maximale Tooltip-Breite */
.ui-tooltip {
max-width: 350px;
}
</style>
 

<!-- Tooltips über Symbolbar einfügen -->
<script type="text/javascript">
 
/* Folgende zwei Funktionen nur einkommentieren,
wenn bereits Beiträge mit Tooltips existieren */
// function tooltip_open(tip) {}
// function tooltip_close() {}
 
// Tooltip-Abfrage für die Symbol-Bar
function tooltip_insert() {
Check = confirm(unescape("Soll ein Link mit Tooltip eingef%FCgt werden?\nBei Abbrechen wird der Text nicht verlinkt."));
if(Check == false){
tooltip_text = prompt(unescape("Der Text, %FCber dem der Tooltip angezeigt wird:", ""));
tooltip_info = prompt(unescape("Text im Tooltip\nHinweis: Der Text kann nachtr%E4glich noch formatiert werden!", ""));
var tooltip_tags = '[tipp]'+tooltip_text+'[info]'+tooltip_info+'[/tipp]';
returnTag(tooltip_tags);
}
else{
url_link = prompt("Link-Adresse:", "http://");
tooltip_text = prompt(unescape("Der Text, %FCber dem der Tooltip angezeigt wird:", ""));
tooltip_info = prompt(unescape("Text im Tooltip\nHinweis: Der Text kann nachtr%E4glich noch formatiert werden!", ""));
var tooltip_tags = '[tipp]'+'[url='+url_link+']'+tooltip_text+'[/url]'+'[info]'+tooltip_info+'[/tipp]';
returnTag(tooltip_tags);
}
}
 
</script>
 
<!-- Tooltips einblenden -->
<script type="text/javascript">
$(document).ready(function(){
$(document).tooltip({
// Maus folgen:
track: true,
// Angewendete Elemente (CSS-Selektoren):
items: 'img, [data-geo], [title], .tooltip_text',
// Ein-/Ausblend-Effekte:
show: null,
hide: { delay: 1 }, // nötig, damit close funktioniert
open: function(event, ui) {
var tooltipHeight = ui.tooltip.css('height');
ui.tooltip.stop(true, true)
.css('opacity', 0).css('height', '0px')
.animate(
{
opacity: 1,
height: tooltipHeight
},
100
);
},
close: function(event, ui) {
ui.tooltip.stop(true, true)
.animate(
{
opacity: 0.0,
height: '0px'
},
{
duration: 100,
complete: function(){
$(this).remove();
}
}
);
},
// Inhalt der Tooltips festlegen:
content: function() {
var element = $(this);
 
// Rückwärtskompatibilität zu bisherigen Tooltips:
if (element.is('.tooltip_text')) {
return element.find('.tooltip').html();
}
 
// weitere jQueryUI-Tooltips aus Beispiel:
if (element.is('[data-geo]')) {
var text = element.text();
return '<img class="map" alt="' + text +
'" src="http://maps.google.com/maps/api/staticmap?' +
'zoom=11&size=350x350&maptype=terrain&sensor=false&center=' +
text + '">';
}
if (element.is('[title]')) {
return element.attr('title');
}
if (element.is('img')) {
return element.attr('alt');
}
}
});
});
</script>
 



Der Block nach dem Kommentar "Ein-/Ausblend-Effekte" (bis "Inhalt der Tooltips festlegen") kann auf Wunsch komplett entfernt oder durch andere Effekte ausgetauscht werden. Passende Bezeichnungen der Effekte sind der jQueryUI-Dokumentation zu entnehmen und komplette Beispiel-Blöcke finden sich in Wolfgangs Forum. Die Effekt-Dauer kann nach eigenem Ermessen eingestellt werden.

Im obigen Skript ist dieser Teil ausnahmsweise etwas stärker ausgeprägt, da es sich dabei um eine Kombination aus Slide- und Fade-Effekt handelt. Die zwei Angaben von 100 entsprechen hier den Werten für die Dauer. Diese Effekt-Kombination soll nur eine zusätzliche Variante bieten und dient hier einfach als ein mögliches Beispiel.




Dann fehlt im Prinzip nur noch ein Forencode für die Iconbar, damit die User den BBCode für einen Tooltip bequem über einen Abfrage-Dialog erstellen lassen können. Ein dem Beitrag angehängter Screenshot zeigt, wie die entsprechenden Felder für den Foren-Code ausgefüllt aussehen.

Der BBCode wird neu angelegt unter:
Admin-Bereich -> Layout -> Iconbar

Unter Ersetze wird folgendes eingetragen:

1
 
[tipp]{{text}} … [info]{{tipp}}[/tipp]
 


Bei Mit steht dann der entsprechende HTML-Code:

1
 
<span class="tooltip_text"> … <span class="tooltip">{{tipp}}</span></span>
 



Hinweis: Wenn bereits die alte Version der Tooltips verwendet wurde, enthält der HTML-Code wahrscheinlich noch die Attribute onMouseOver und onMouseOut sowie ein IMG-Tag im Tooltip-Container. Der alte BBCode kann problemlos beibehalten werden. Allerdings sollten im obigen Skript dann die Kommentar-Zeichen vor den leeren Funktionen tooltip_open() und tooltip_close() herausgenommen werden. Sonst gibt es fehlerhafte Funktionsaufrufe beim Überfahren des Tooltip-Textes mit der Maus.

Als JS-Funktion wird dann noch tooltip_insert(); eigetragen, damit aus der Symbolbar auch die Abfrage nach den Texten aufgerufen wird.

#33 RE: Tooltips über bestimmten Textstellen von Triple M 09.10.2013 08:15

avatar

Sorry Florian ich habe nicht bedacht zu Erwähnen das ich mein Templates Original habe und es nicht Verändern möchte. Hätte ich auch selber dran Denken können das zu schreiben. Also wenn es eine Möglichkeit gibt das Ohne eingriff zu machen dann würde ich mich Freuen. Wenn es nur mit den Eingriff ins Templates Geht dann möchte ich es nicht einfügen.
Bisher habe ich alles was ich Optisch geändert habe per CSS und HTNL über Kopfzeile CSS oder eben Codes gemacht. Und das möchte ich eigentlich so bei behalten.

Sorry das ich nicht darauf hingewiesen habe.

#34 RE: Tooltips über bestimmten Textstellen von florian-zier 10.10.2013 10:14

avatar

Hallo Mario,
theoretisch müsste es auch in der Kopfzeile funktionieren. Die sieht dann bestimmt ziemlich voll aus.

Unter Layout -> Farben & Einstellungen -> CSS gibt es übrigens die Möglichkeit, die CSS-Datei des Forums mit eigenen Style-Regeln zu ergänzen. Damit würde die Kopfzeile zumindest nicht mit allzu viel CSS-Regeln überladen.

Solche Änderungen finden sonst oft im Template statt, da Skripte und Styles normalerweise zwischen den Head-Tags im HTML-Code definiert und im Body dann einfach nur noch verwendet werden. Dies soll für eine bessere Strukturierung sorgen.

#35 RE: Tooltips über bestimmten Textstellen von Triple M 10.10.2013 18:40

avatar

Nabend Florian, Danke erst mal für die Hilfe. Ich habe das nun mal Versucht in Layout/Kopfzeile einzufügen.

Eingesetzt habe ich da folgendes

<!-- jQueryUI-Theme -->
<link type="text/css" rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/...s/jquery-ui.css">
<!-- jQueryUI-Skript -->
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>

<!-- Style für Tooltips -->
<style type="text/css">
/* Tooltip-Container nicht
in Text anzeigen */
.tooltip {
display:none;
}
/* Hilfe-Cursor und Unterstreichen
von Text mit Tooltip */
.tooltip_text, .tooltip_text a {
cursor: help;
border-bottom: 1px dotted;
}
/* GoogleMap in Tooltip */
.map {
width: 350px;
height: 350px;
}
/* maximale Tooltip-Breite */
.ui-tooltip {
max-width: 350px;
}
</style>


<!-- Tooltips über Symbolbar einfügen -->
<script type="text/javascript">

/* Folgende zwei Funktionen nur einkommentieren,
wenn bereits Beiträge mit Tooltips existieren */
// function tooltip_open(tip) {}
// function tooltip_close() {}

// Tooltip-Abfrage für die Symbol-Bar
function tooltip_insert() {
Check = confirm(unescape("Soll ein Link mit Tooltip eingef%FCgt werden?\nBei Abbrechen wird der Text nicht verlinkt."));
if(Check == false){
tooltip_text = prompt(unescape("Der Text, %FCber dem der Tooltip angezeigt wird:", ""));
tooltip_info = prompt(unescape("Text im Tooltip\nHinweis: Der Text kann nachtr%E4glich noch formatiert werden!", ""));
var tooltip_tags = ''+tooltip_text+' '+tooltip_info+'';
returnTag(tooltip_tags);
}
else{
url_link = prompt("Link-Adresse:", "http://");
tooltip_text = prompt(unescape("Der Text, %FCber dem der Tooltip angezeigt wird:", ""));
tooltip_info = prompt(unescape("Text im Tooltip\nHinweis: Der Text kann nachtr%E4glich noch formatiert werden!", ""));
var tooltip_tags = ''+'[url='+url_link+']'+tooltip_text+'[/url]'+' '+tooltip_info+'';
returnTag(tooltip_tags);
}
}

</script>

<!-- Tooltips einblenden -->
<script type="text/javascript">
$(document).ready(function(){
$(document).tooltip({
// Maus folgen:
track: true,
// Angewendete Elemente (CSS-Selektoren):
items: 'img, [data-geo], [title], .tooltip_text',
// Ein-/Ausblend-Effekte:
show: null,
hide: { delay: 1 }, // nötig, damit close funktioniert
open: function(event, ui) {
var tooltipHeight = ui.tooltip.css('height');
ui.tooltip.stop(true, true)
.css('opacity', 0).css('height', '0px')
.animate(
{
opacity: 1,
height: tooltipHeight
},
100
);
},
close: function(event, ui) {
ui.tooltip.stop(true, true)
.animate(
{
opacity: 0.0,
height: '0px'
},
{
duration: 100,
complete: function(){
$(this).remove();
}
}
);
},
// Inhalt der Tooltips festlegen:
content: function() {
var element = $(this);

// Rückwärtskompatibilität zu bisherigen Tooltips:
if (element.is('.tooltip_text')) {
return element.find('.tooltip').html();
}

// weitere jQueryUI-Tooltips aus Beispiel:
if (element.is('[data-geo]')) {
var text = element.text();
return '<img class="map" alt="' + text +
'" src="http://maps.google.com/maps/api/staticmap?' +
'zoom=11&size=350x350&maptype=terrain&sensor=false&center=' +
text + '">';
}
if (element.is('[title]')) {
return element.attr('title');
}
if (element.is('img')) {
return element.attr('alt');
}
}
});
});
</script>




Dann habe ich Unter Iconbar ( Neue ) bei "Foren Code, folgendes eingetragen



Dem ganzen dann noch ein Bild gegeben damit nicht der Ganze Code in der Iconbar angezeigt wird.

Wenn ich nun einen Text schreibe und den Code mit einfüge schaut es so aus.



Gehe ich nun auf Vorschau sehe ich das



Gehe ich nun mit der Maus Drüber erscheint Folgendes



Nun kann ich dort noch den Text eingeben und dann schaut es genauso aus wie es soll




Nun muss ich mal das andere im Forum alles im Auge behalten um zu sehen ob sich Irgendwo etwas verändert was nicht sein soll.
Darum habe ich es vorerst nur im Testforum eingebaut.

Gibt es in der Kopfzeile eine Möglichkeit das ganze Einzufassen? Also das man genau sehen kann was alles dazu gehört?

Das habe ich bei meinen ganzen CSS Einträgen auch und da stehen dann immer die ganzen Sachen drinn wofür der CSS Eintrag ist.

/*--- 004-Ab hier Hintergrund, Weite, Farben und Rahmen fuer Zitate in den Beitraegen --- */
blockquote {
background-color: transparent;
border: 1px solid 030003;
font-style:normal;
width: 72%;
padding: 10px;
box-shadow: 0 2px 15px;
-moz-box-shadow: 0 2px 15px;
-o-box-shadow: 0 2px 15px;
-webkit-box-shadow: 0 2px 15px;
-khtml-box-shadow: 0 2px 15px;
}
/*--- 004-Ende Hintergrund, Weite, Farben und Rahmen fuer Zitate in den Beitraegen --- */



Dei Frage ist nun gibt es etwas was ich in die Kopfzeile zur Begrenzung der einzelnen Scripte etc Einsetzen kann was nicht in der Kopfzeile Umgesetzt wird?

#36 RE: Tooltips über bestimmten Textstellen von Triple M 16.10.2013 10:40

avatar

Hallo, nun hat sich noch ein Fehler aufgetan. Und zwar wenn ich das Script in der Kopfzeile habe

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
 
<!-- jQueryUI-Theme -->
<link type="text/css" rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<!-- jQueryUI-Skript -->
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
 
<!-- Style für Tooltips -->
<style type="text/css">
/* Tooltip-Container nicht
in Text anzeigen */
.tooltip {
display:none;
}
/* Hilfe-Cursor und Unterstreichen
von Text mit Tooltip */
.tooltip_text, .tooltip_text a {
cursor: help;
border-bottom: 1px dotted;
}
/* GoogleMap in Tooltip */
.map {
width: 350px;
height: 350px;
}
/* maximale Tooltip-Breite */
.ui-tooltip {
max-width: 350px;
}
</style>

 
<!-- Tooltips über Symbolbar einfügen -->
<script type="text/javascript">

/* Folgende zwei Funktionen nur einkommentieren,
wenn bereits Beiträge mit Tooltips existieren */
// function tooltip_open(tip) {}
// function tooltip_close() {}

// Tooltip-Abfrage für die Symbol-Bar
function tooltip_insert() {
Check = confirm(unescape("Soll ein Link mit Tooltip eingef%FCgt werden?\nBei Abbrechen wird der Text nicht verlinkt."));
if(Check == false){
tooltip_text = prompt(unescape("Der Text, %FCber dem der Tooltip angezeigt wird:", ""));
tooltip_info = prompt(unescape("Text im Tooltip\nHinweis: Der Text kann nachtr%E4glich noch formatiert werden!", ""));
var tooltip_tags = '[tipp]'+tooltip_text+'[info]'+tooltip_info+'[/tipp]';
returnTag(tooltip_tags);
}
else{
url_link = prompt("Link-Adresse:", "http://");
tooltip_text = prompt(unescape("Der Text, %FCber dem der Tooltip angezeigt wird:", ""));
tooltip_info = prompt(unescape("Text im Tooltip\nHinweis: Der Text kann nachtr%E4glich noch formatiert werden!", ""));
var tooltip_tags = '[tipp]'+'[url='+url_link+']'+tooltip_text+'[/url]'+'[info]'+tooltip_info+'[/tipp]';
returnTag(tooltip_tags);
}
}

</script>

<!-- Tooltips einblenden -->
<script type="text/javascript">
$(document).ready(function(){
$(document).tooltip({
// Maus folgen:
track: true,
// Angewendete Elemente (CSS-Selektoren):
items: 'img, [data-geo], [title], .tooltip_text',
// Ein-/Ausblend-Effekte:
show: null,
hide: { delay: 1 }, // nötig, damit close funktioniert
open: function(event, ui) {
var tooltipHeight = ui.tooltip.css('height');
ui.tooltip.stop(true, true)
.css('opacity', 0).css('height', '0px')
.animate(
{
opacity: 1,
height: tooltipHeight
},
100
);
},
close: function(event, ui) {
ui.tooltip.stop(true, true)
.animate(
{
opacity: 0.0,
height: '0px'
},
{
duration: 100,
complete: function(){
$(this).remove();
}
}
);
},
// Inhalt der Tooltips festlegen:
content: function() {
var element = $(this);

// Rückwärtskompatibilität zu bisherigen Tooltips:
if (element.is('.tooltip_text')) {
return element.find('.tooltip').html();
}

// weitere jQueryUI-Tooltips aus Beispiel:
if (element.is('[data-geo]')) {
var text = element.text();
return '<img class="map" alt="' + text +
'" src="http://maps.google.com/maps/api/staticmap?' +
'zoom=11&size=350x350&maptype=terrain&sensor=false&center=' +
text + '">';
}
if (element.is('[title]')) {
return element.attr('title');
}
if (element.is('img')) {
return element.attr('alt');
}
}
});
});
</script>
 

 



Kann ich seltsamer weise nicht mehr Sauber auf meine Smileys in der Iconbar zugreifen.

Wenn ich einen Beitrag schreibe und einen Smileys Hinzufügen möchte öffnet sich Kurz das Smiley Fenster. Gehe ich nun mit der maus in das Fenster, konnte ich bisher ohne Probleme den Smileys auswählen.

Nun ist es so wenn ich mit der Maus in das Smileys Fenster gehe Geht selbiges wieder zu. Heist ich habe nicht die Möglichkeit einen Smileys auszuwählen.

Entferne ich das Script geht es wieder wie gewohnt.

Das natürlich Doof aber so kann ich die Schöne Tooltip Funktion nicht nutzen.

Kann ich das Script irgendwie anders ins Forum bringen?

Edit:

So ich habe es nun in der Iconbar über HTML gemacht. Dort das Script rein und es scheint zu Funktionieren. Werde das mal weiter testen.


Edit 2 Nun habe ich es getestet und leider Funktioniert es seltsamerweise nur in der Vorschau. Wenn ich danach auf Speichern gehe sieht es leider so aus.

#37 RE: Tooltips über bestimmten Textstellen von florian-zier 16.10.2013 21:47

avatar

Hallo Mario,
du könntest es einfassen, indem du den um den ganzen Block HTML-Kommentare schreibst:

1
2
3
 
<!-- jQuery-Tooltips -->
[… Skripte …]
<!-- /jQuery-Tooltips -->
 



Die jQueryUI-Teile, also Theme und Skript, sollten nicht davon eingerahmt werden, da du sie irgendwann mal wieder für andere Erweiterungen benötigen könntest und diese dann in dem Tooltip-Block evtl. untergehen würden.


Du siehst den Tooltip in der Vorschau übrigens nur, weil dort das Skript und die Styles in der Iconbar eingebunden werden und damit die Tooltips aktiv sind. Nachdem der Beitrag gespeichert ist, wird die Iconbar nicht mehr eingebunden und damit sind die Tooltips auch nicht mehr verfügbar. Da im Block ebenfalls die Styles eingebettet sind, wird der Tooltip-Text auch nicht mehr wie gewünscht ausgeblendet und erst bei Bedarf, sondern sofort und direkt im Beitrag angezeigt.

Bei der vorigen Variante, mit dem Problem der Smileys, wurde evtl. ein Tooltip eingeblendet, während du mit der Maus über das Fenster fährst. Dadurch befindet sich die Maus dann plötzlich über dem Tooltip und nicht mehr über dem Smiley-Fenster. Sobald das Smiley-Fenster verlassen wird, schließt es sich in der Regel. Das könnte das Problem erklären. Ansonsten stochere ich da aber im Dunkeln. Ich drücke dir dennoch die Daumen, dass du den Fehler finden kannst.

#38 RE: Tooltips über bestimmten Textstellen von Triple M 16.10.2013 22:23

avatar

Danke für den Tip mit der Einfassung.

Ja ich habe auch keine Ahnung woran der Fehler liegt. Habe nun so Viel Getestet. Das Problem ist das ich wenn ich mit der Maus sehr Langsam im Smileys Fenster zum Smileys gehe kann ich den Auswählen. gehe ich zu schnell durch das Fenster geht es zu. Verrückte Sache und ich habe null Plan wie ich das Umgehen kann.

Mir ist noch aufgefallen das wenn ich das Script in Der Kopfzeile habe einige Sachen angezeigt werden die beim Kopfzeile Ohne Script nicht so angezeigt werden

Kann mir jemand sagen warum es so ist?



Das immer dann wenn ich mit der Maus auf den Entsprechenden Icon Gehe ohne zu Klicken.

#39 RE: Tooltips über bestimmten Textstellen von florian-zier 18.10.2013 22:11

avatar

Haben deine Smileys denn das title- oder altAttribut? Dann besteht zumindest die Möglichkeit, dass ein Tooltip angezeigt werden kann. Würde aber bedeuten, dass dieser beim Treffen eines Smileys sofort aufploppt und dadurch das Smiley-Fenster den Fokus verliert.

Du kannst zum Test mal das title mit den eckigen Klammern aus folgender Zeile entfernen:

1
 
items: 'img, [data-geo], [title], .tooltip_text',
 


Danach auch noch die bedingte Anweisung:

1
2
3
 
if (element.is('[title]')) {
return element.attr('title');
}
 


Falls es dann immer noch nicht ganz klappt, versucht du die beiden Schritte nochmal zusätzlich mit img durchzuführen.

Wenn das Smiley-Fenster danach ohne Probleme funktioniert bedeutet das, es darf nicht den Fokus verlieren, damit es sich nicht schließt. Entweder verzichtest du dann auf Tooltips bei Bildern (IMG-Tags) oder Elementen mit title-Attribut (je nach Testergebnis evtl. auch beides), oder du brauchst einen neuen Selektor, welcher sozusagen alle Bilder und title-Elemente anspricht, außer die in der Symbolbar.

#40 RE: Tooltips über bestimmten Textstellen von Triple M 19.10.2013 08:43

avatar

Hallo Florian, danke für den Tip aber das Entfernen bewirkt nur das der Tooltip (Fenster) nicht mehr auf geht. Ich sehe zwar das Kleine ? aber das Fenster mit dem Tip bleibt geschlossen.

Den Rest den du im Post Oben Erklärst habe ich nicht versucht weil ich nicht genau weiß wie du das meinst.
Ich denke ich werde vorerst auf den Tooltip Verzichten. Hoffnung habe ich ja das es so etwas mal als Plugin gibt. Denn Tooltips Nutzen die im Support ja auch zum Teil.
Ich bin einfach nicht Fit genug in HTML & Co und bin somit leider auf die Hilfe von anderen angewiesen. Und da ich Zeitlich zu sehr eingeschränkt bin auch noch HTML&Co zu lernen werde ich drauf Verzichten auch wenn es schwer Fällt weil eben ein Geniales Feature.

Xobor Forum Software von Xobor
Einfach ein eigenes Forum erstellen
Datenschutz