Ik wil graag een tooltip tonen met de complete tekst wanneer de tekst te lang is voor de div (met "nowrap" attribuut). Is er een manier om te weten dat de tekst inderdaad is afgebroken? Ik wil nl. de tooltip alleen in dat geval tonen, en niet altijd.
Met javascript kun je karakter voor karakter de tekst doorlopen. Je kunt hiervan dan de afmetingen en positie achterhalen, wellicht dat je daar wat mee kunt
"Chaos kan niet uit de hand lopen"
Maar dan zit je wel met het probleem dat de string 'wwwww' met lengte 5 een stuk langer uitpakt dan 'iiiii' met ook lengte 5..
Miscchien omslachtig, maar je zou de text met javascript in een hidden veld kunnen zetten dat geen "nowrap" heeft en daarvan de width bepalen, is ie groter dan de div, is ie ingekort...
Niet echt een mooie oplossing, zodra ik iets mooiers bedenk laat ik 't weten
Niet echt een mooie oplossing, zodra ik iets mooiers bedenk laat ik 't weten
Iedereen wil terug naar de natuur, maar niemand wil lopend...
Toch een interessante oplossing. Ik zal eens in die richting proberen... bedankt.MichielioZ schreef op dinsdag 20 november 2007 @ 18:34:
Miscchien omslachtig, maar je zou de text met javascript in een hidden veld kunnen zetten dat geen "nowrap" heeft en daarvan de width bepalen, is ie groter dan de div, is ie ingekort...
Niet echt een mooie oplossing, zodra ik iets mooiers bedenk laat ik 't weten
En voor mooier mag je natuurlijk altijd terugkomen
Verwijderd
Bedoel je zoiets?
HTML:
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
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="nl"> <head> <title>Tooltip?</title> <style type="text/css"> #buiten, #buiten2 { width:200px; overflow:hidden; border: 1px solid #000; } #binnen, #binnen2 { white-space:nowrap; } </style> <script type="text/javascript"> function tooltip(){ if (document.getElementById('binnen').offsetWidth > document.getElementById('buiten').clientWidth){ alert("Wel een tooltip nodig voor de eerste tekst."); } else { alert("Geen tooltip nodig voor de eerste tekst."); } if (document.getElementById('binnen2').offsetWidth > document.getElementById('buiten2').clientWidth){ alert("Wel een tooltip nodig voor de tweede tekst."); } else { alert("Geen tooltip nodig voor de tweede tekst."); } } </script> </head> <body onload="tooltip()"> <h1>Tooltip nodig?</h1> <div id="buiten"> <span id="binnen">Ik wil graag een tooltip tonen met de complete tekst wanneer de tekst te lang is voor de div (met "nowrap" attribuut). Is er een manier om te weten dat de tekst inderdaad is afgebroken? Ik wil nl. de tooltip alleen in dat geval tonen, en niet altijd.</span> </div> <br> <div id="buiten2">n IE7.[/edit] <span id="binnen2">Ik wil</span> </div> </body> </html> |
edit:
Alleen gecheckt in IE6.
Alleen gecheckt in IE6.
edit:
Werkt ook in Safari, Firefox, Opera en IE7.
Werkt ook in Safari, Firefox, Opera en IE7.
[ Voor 3% gewijzigd door Verwijderd op 20-11-2007 20:40 ]
Verwijderd
Jij bedankt. Jouw vraag bleek een oplossing voor een probleempjes bij mezelf te zijn. Zo gaat het ook wel eens.
Persoonlijk zou ik scrollWidth vergelijken met clientWidth, hetzelfde doen we in onze js ellipsis-implementatie op de frontpage ( http://tweakers.net/x/general.js )
Intentionally left blank
Pagina: 1