Sto cercando di rilevare (tramite javascript) quando è attivo l'overflow del testo. Dopo molte ricerche, ho una soluzione di lavoro, salvo in ogni versione di Firefox:Rilevamento di overflow di testo CSS: puntini di sospensione in Firefox
http://jsfiddle.net/tonydew/mjnvk/
Se si regola il browser in modo che si applica i puntini di sospensione, Chrome, Safari, anche IE8 + avviserà che i puntini di sospensione è attivo. In Firefox (ogni versione che ho provato, compresi i 17 e 18) non così tanto. Firefox ti dirà sempre che i puntini di sospensione NON è attivo.
Il console.log() uscita mostra perché:
Firefox (OS X):
116/115 - false
347/346 - false
Chrome (OS X):
116/115 - false
347/851 - true
In Firefox, scrollWidth non è mai superiore a offsetWidth.
La soluzione più vicina a una soluzione è "Why are IE and Firefox returning different overflow dimensions for a div?" ma sto già utilizzando la soluzione proposta.
Qualcuno può far luce su come farlo funzionare anche in Firefox?
MODIFICA: oltre alla risposta @Cezary di seguito, ho trovato un metodo che non richiede modifiche al markup. Tuttavia, si sta facendo un po 'di lavoro perché clona temporaneamente ogni elemento di fare la misura contro:
$(function() {
$('.overflow').each(function(i, el) {
var element = $(this)
.clone()
.css({display: 'inline', width: 'auto', visibility: 'hidden'})
.appendTo('body');
if(element.width() > $(this).width()) {
$(this).tooltip({
title: $(this).text(),
delay: { show: 250, hide: 100 },
});
}
element.remove();
});
});
http://jsfiddle.net/tonydew/gCnXh/
Chiunque avere un commento sulla efficienza di questo? Se ho una pagina di molti potenziali elementi di overflow, questo avrà effetti negativi? Mi piacerebbe evitare di modificare il markup esistente se posso, ma non a scapito dell'eccessiva elaborazione JS su ogni caricamento di pagina.
Perché hai creato un nuovo account per questa domanda? A giudicare dal tuo post perfettamente etichettato e formattato, ovviamente hai un altro account che usi per rispondere alle domande. – AlienWebguy
Nessun altro account che io conosca! I tag e la formattazione sono così come sono perché non volevo essere il ragazzo che fa domande scarsamente preparate. Non sto facendo niente di buono; sto solo cercando di fare la miglior domanda che posso, così mi viene data una risposta! – TunaMaxx
Abbastanza giusto, +1 :) – AlienWebguy