2016-08-22 2 views
0

У меня есть верхняя панель, которую я установил в фиксированное положение при прокрутке. Ниже у меня есть стол. Я хотел бы, чтобы thead таблицы был исправлен после того, как верхняя панель установлена ​​на фиксированную, а строки таблицы должны прокручиваться позади этого thead, например here.таблица thead фиксированное положение с верхним баром

ЯШ:

$(document).ready(function() { 
    var fixmeTop = $(".fixme").offset().top; 
    var countriesTableTop = $(".fixme").height() + 20; //20 is the margin 
    $(window).scroll(function() { 
    var currentScroll = $(window).scrollTop(); 
    if (currentScroll >= fixmeTop) { 
     $(".fixme").css({"position": "fixed", "top": "0", "left": "0"}); 
     $(".countries-table thead").css({"position": "fixed", "top": countriesTableTop}); 
    } else { 
     $(".fixme").css("position", "static"); 
     $(".countries-table thead").css("position", "static"); 
    } 
    }); 
}); 

CSS:

.fixme { 
    width: 100%; 
    margin-top: 0 !important; 
    background-color: #000; 
    z-index: 5000; 
    margin-bottom: 20px; 
} 

.countries-table { 
    width: 100%; 
    background-color: silver; 
} 

.countries-table thead { 
    font-weight: bold; 
    z-index: 200 
} 

Он прекрасно работает на фиксированной позиции верхней панели, но, к сожалению, не за столом.

Просмотреть мои jsfiddle.

Обратите внимание, что я не должен ограничивать высоту стола. Идея состоит в том, что пользователь всегда будет видеть thead.

+0

Вы смотрели на http://stackoverflow.com/questions/8321849/how-to-scroll-tables-tbody-independent-of-thead? – WookieCoder

+0

Да, высота стола ограничена – Dejell

+0

Почему высота стола не должна ограничиваться? вы всегда можете использовать 'vh', если вы не хотите, чтобы это значение было пикселем, и оно становится динамическим. – WookieCoder

ответ

0

Try This

.fixme { 
    width: 100%; 
    margin-top: 0 !important; 
    background-color: #000; 
    z-index: 5000; 
    margin-bottom: 20px; 
} 
.countries-table { 
    width: 382px; 
    background-color: silver; 
    table-layout: fixed; 
} 
.countries-table thead tr { 
    font-weight: bold; 
    display: block; 
    position: relative; 
    background: #333; 
    color: #fff; 
    width: 383px; 
} 
.countries-table tbody { 
    display: block; 
    overflow: auto; 
    width: 100%; 
    height: 300px; 
} 
.countries-table thead tr td:nth-child(1), 
.countries-table tbody tr td:nth-child(1) { 
    padding: 4px; 
    width: 190px; 
} 
.countries-table thead tr td:nth-child(2), 
.countries-table tbody tr td:nth-child(2) { 
    padding: 4px; 
    width: 190px; 
} 
.countries-table tbody tr:nth-child(odd) { 
    background: #f5f5f5; 
} 

CLICK HERE FOR DEMO

+0

Вы можете достичь этого без javascript –

+0

, но высота ограничена - высота: 300 пикселей; – Dejell

+0

вы можете установить высоту независимо от того, что вы хотите –

Смежные вопросы