テキストオーバーフローが有効なときに(JavaScript経由で)検出しようとしています。多くの研究の後、私は、Firefoxのすべてのバージョンを除いて、実用的なソリューションを持っている:CSSのテキストオーバーフローの検出:Firefoxの省略記号
http://jsfiddle.net/tonydew/mjnvk/
省略記号が適用されるように、あなたは、クロム、サファリのブラウザを調整した場合は、さえIE8 +は省略記号があることを警告しますアクティブ。 Firefox(17と18を含む私が試したすべてのバージョン)ではそれほど多くはありません。 Firefoxは、省略記号が有効ではないことを常に通知します。
にconsole.log()出力は理由を示していますFirefoxので
Firefox (OS X):
116/115 - false
347/346 - false
Chrome (OS X):
116/115 - false
347/851 - true
を、scrollWidthはoffsetWidthより大きくなることはありません。
ソリューションに最も近いのは "Why are IE and Firefox returning different overflow dimensions for a div?"ですが、私は既に提案されているソリューションを使用しています。
Firefoxでこの作業を行う方法については、誰でも気をつけてください。
編集:以下の@Cezaryの回答に加えて、私はマークアップの変更を必要としないメソッドを見つけました。この効率にコメントを持っている
$(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/
誰:それは一時的に反対の測定を行うために、各要素のクローンしかし、それはもう少し作業をしているのですか?多くの潜在的なオーバーフロー要素のページがある場合、これに悪影響が及ぶでしょうか?できるだけ既存のマークアップを変更しないようにしたいと思いますが、各ページの読み込み時に余分なJS処理を犠牲にすることはありません。
この質問に対して新しいアカウントを作成したのはなぜですか?完全にタグ付けされ、書式設定された投稿で判断すると、明らかに質問に回答するための別のアカウントがあります。 – AlienWebguy
私が知っている他のアカウントはありません!タグとフォーマットは、あまり準備ができていない質問をしてくれる人になりたくないため、そのままの形になっています。私は悪くない。私ができる最高の質問をしようとするだけで、それは答えになる! – TunaMaxx
フェア十分、+1: – AlienWebguy