2011-04-13 68 views
3

我使用SlickGrid 2.0a版作爲分組功能。一切都很好(有很多定製)。我正嘗試在翻滾事件中更改整個行的background-colorSlickGrid更改滾動時的行背景顏色

我已經試過這樣:

.slick-row { background-color:#dee0fe; } 

這:

.slick-row.ui-state-active { background:#dee0fe; } 

這適用於單個細胞:

.lr:hover { background: #dee0fe; } 

但似乎沒有整行的工作,我從來沒有見過這樣的例子。 我也有單元格設置爲selectable:true, focusable:false
似乎應該很容易......

感謝

回答

3

只是一個猜測的基礎上,在你的問題的CSS:

.slick-row:hover .lr { 
    background-color:#dee0fe; 
} 
0

所有你需要做的就是細胞的集合該行,並在鼠標樣式他們進入每個單元的/休假:

$('.slick-cell').mouseenter(function() { 
    $(this.parentNode.children).addClass('slick-cell-hovered') ; 
}); 

$('.slick-cell').mouseleave(function() { 
    $(this.parentNode.children).removeClass('slick-cell-hovered'); 
}); 


.slick-cell-hovered 
{ 
    background: #EBEFF2 none; 
} 
6

這只是正常的我:

.slick-row:hover { background-color: red; } 
+1

這不是真的這樣簡單,雖然我upvoted。你還需要:.slick-row {backgroud:white; }或者其他。如果您試圖獲得最低風格的配置,您將需要兩個css規則。 – jeromeyers 2012-07-10 20:12:52

1

我剛剛完成了這個工作,這是我想出的簡化版本。你可以很多地清理它,假設你的列沒有改變,緩存哈希的內部部分是有意義的。

使用API​​調用它應該是這個樣子:

grid.onMouseEnter.subscribe(function (e) { 
    var hash = {}; 
    var cols = grid.getColumns(); 

    for (var i = 0; i < cols.length; ++i) { 
     hash[grid.getCellFromEvent(e).row][cols[i].id] = "hover"; 
    } 

    grid.setCellCssStyles("hover", hash); 
}); 

grid.onMouseLeave.subscribe(function (e) { 
    grid.removeCellCssStyles("hover"); 
});