我試圖檢測(通過JavaScript)何時文本溢出生效。經過大量的研究,我有一個有效的解決方案,但在Firefox中的任何版本:檢測CSS文本溢出:Firefox中的省略號
http://jsfiddle.net/tonydew/mjnvk/
如果調整瀏覽器,以便省略號應用,瀏覽器,Safari瀏覽器,甚至IE8 +會提醒省略號是活性。在Firefox中(我試過的每個版本,包括17和18)都不是。 Firefox會一直告訴你省略號是不活躍的。
的執行console.log()輸出顯示了爲什麼:
Firefox (OS X):
116/115 - false
347/346 - false
Chrome (OS X):
116/115 - false
347/851 - true
在Firefox中,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