2013-01-10 46 views
0

這是驅動我堅果...在滾動列表中獲取部分隱藏div的寬度(演示程序可用)?

我有一個文件名的列表,我只想垂直滾動,所以如果文件名(= div)比列表本身更寬我想「帶出」完整的div來顯示名稱。

你可以看到這一點,我這裏的行動:http://j25.wasen.net/index.php/news

我已經通過創建懸停在div的克隆並將其添加到體內並在其上設置很高的zIndex的解決了這個。這是一個克隆div將出現在所有東西之上,但與原始div相同的位置。

我真的不明白爲什麼,但由於某種原因,寬度小於列表的div顯示錯誤的位置。儘管如此,超出寬度的項目顯示在正確的位置。

我想做一個檢查,如果包含該名稱的div超出列表的寬度,然後創建克隆,並且這也僅在需要時。

但我無法得到div的真正寬度。我添加了Console.log語句,以顯示它捕獲的寬度。

我檢查貼在身上(=克隆),而不是在列表中的div(部分隱藏)的div的寬度......

我怎樣才能獲得div的真實寬度?

謝謝!

+0

,我沒有看到你在引用鏈接說什麼。 – mrtsherman

+0

即使使用Chrome瀏覽器,即使使用不移動的鼠標,該克隆格也會一直開啓和關閉(頂部的文件夾比底部的鏈接更糟糕)。如何使用「工具提示」代替克隆div「 – MikeD

+0

如果將鼠標懸停在列表中的文件夾和文件右側,您可以看到我的意思。 – Anders

回答

0

你的一般前提是好的。看到這個例子。要做到這一點,我

  1. 創建懸停列表項的克隆
  2. 使用offset定位得當
  3. 在鼠標離開刪除懸停元素

Hover造成了不必要的閃爍。因此分開事件處理的原因。

http://jsfiddle.net/5zErQ/

var $clone; 
$('li').mouseenter(function() { 
    $clone = $('<span />', {text: $(this).text(), class:'temp'}); 
    $clone.css({position:'absolute', top:$(this).offset().top, left:$(this).offset().left}); 
    $('body').append($clone); 
}); 

$('body').on('mouseleave', 'span', function() { 
    $(this).remove(); 
}); 
+0

甜,這是完美的M8! – Anders

+0

雖然我在處理我的示例頁面時遇到了問題:http://j25.wasen.net/index.php/news 左側的位置不在比列表寬的對象上,「刪除」代碼是並不是真的對你有好處......( – Anders

+0

我現在設法解決了「閃爍」現在我需要幫助清理爲什麼有些物體被推向右邊...... 任何指針? – Anders

0

下載Mozilla的firebug插件。一旦安裝,你可以右鍵點擊任何元素,看看它的風格和佈局等

選擇佈局選項卡,右下角,如果你把鼠標懸停在你的div你會看到元素的尺寸,包括任何邊距和填充。這裏

下載:https://getfirebug.com/

希望有所幫助。

+0

調試不是問題,我在Chrome中做的很好。我遇到的問題是試圖找出div列表中div的真實寬度。 – Anders