#jquery #html #css
#jquery #HTML #css
Вопрос:
Я пытаюсь создать панель инструментов, которая фиксируется в верхней части моей веб-страницы, когда страница прокручивается вниз, а заголовок над панелью инструментов не отображается. Однако панель инструментов, похоже, остается установленной в абсолютном положении независимо от прокрутки. Возможно, где-то в этом коде есть проблема, которую я не вижу?
$(window).scroll(function()
{
if (isVisible($('.header-box')))
{
$('.toolbar').css({'position': 'absolute','top': '25%'});
}
else
{
$('.toolbar').css({'position': 'fixed','top': '0%'});
}
});
function isVisible(elm)
{
var windowHeight = $(window).height(),
pageTop = $(window).scrollTop(),
Y = $(elm).offset().top,
elementHeight = $(elm).height();
return ((Y < (windowHeight pageTop)) amp;amp; (Y > (pageTop - elementHeight)));
}
Комментарии:
1. Вы вызываете
checkVisible()
, но функция, похоже, вызываетсяisVisible()
.2. отредактировано, все еще не работает, но спасибо, что заметили эту часть.
3.
isVisible(elm)
функция принимает вызываемый объект jqueryelm
, поэтому вам не нужно помещать его в функцию jquery в строках 3 и 4 в той же функции4. @user3788161 сделай скрипку
Ответ №1:
посмотрите на это:
$( window ) . scroll ( function ()
{
var header = $( ".header-box" );
var toolbar = $( ".toolbar" );
if ( $( window ) . scrollTop () > header . offset ().top header . height () ) { toolbar . css ( { "position": "fixed" } ); }
else { toolbar . css ( { "position": "relative" } ); }
});
Полный пример находится в этой скрипке: JSfiddle
Я надеюсь, что это вам поможет.