Мне нужно сделать панель меню, как в http://showbic.com/sports/adam-milne-vs-west-indies/
На этом веб-сайте menu_bar находится не сверху, но при прокрутке вниз строка меню не доходит до остальной части контента, но после касания верхней части она остается наверху.
Я знаю, что какой-то JavaScript используется в сочетании с CSS, но как я не знаю, пожалуйста, кто-нибудь мне поможет.
Заранее спасибо.
Я бы посоветовал попробовать что-то с onscroll
в Javascript, а затем сохранить заголовок вверху, вы можете использовать position:fixed;
в контейнере CSS. (вы можете захотеть поиграть с верхним размещением или чем-то еще, чтобы держать его на самом верху и в предпочтительном месте, когда он не нужен сверху)
См. Например:
<script type="text/javascript">
var fixed = false;
onscroll = function()
{
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
if (scrollTop > 200)
{
if (!fixed)
{
$('.navbar-wrapper').css({ position: 'fixed', top : 0 });
fixed = true;
}
}
else
{
if (fixed)
{
$('.navbar-wrapper').css({ position: 'relative', top : 200 });
fixed = false;
}
}
}
</script>
Это может быть ваш css
body{
height:1000px;
}
div{
width:200px;
height:100px;
background:red;
position:relative;
top:200px;
}
.fixedClass{
position:fixed;
top:0;
}
код jquery
$(window).scroll(function(){
if($(window).scrollTop() > 200){ // position of menu from the top
$('div').addClass('fixedClass');
}
else{
$('div').removeClass('fixedClass');
}
})
Html
: P
<div>
</div>
рабочая скрипка
При изучении исходного кода вы можете просмотреть часть javascript, которая контролирует этот бар. http://showbic.com/wp-content/plugins/seo-alrp/js/slidebox.js?ver=3.8. Вместо:
$('#alrp-slidebox').animate({'right':'0px'},300);
Положил:
$('#yourContent').animate({'top':'0px'},300);
И для (мы предполагаем, что высота ящика составляет 300 пикселей):
$('#alrp-slidebox').stop(true).animate({'right':'-430px'},100);
Положил:
$('#yourContent').stop(true).animate({'top':'-300px'},100);