删除固定导航菜单弹跳 - jQuery?
Remove Fixed Navigation Menu Bounce - jQuery?
可以在以下位置找到我修改过的模板的工作演示 url:
https://newbloggerthemes.com/base-wp-blogger-template/demo/
我一直无法确定是什么导致了固定导航菜单令人讨厌的弹跳。如果向下滚动页面,菜单应该向上移动并在其顶部边框到达页面顶部时停止;然而,它实际上刚好移过页面顶部,然后又弹回来,导致恼人的弹跳。
如何消除这种反弹?我假设这可能是由用于查询菜单位置的 jQuery 代码引起的。就好像代码是在事后解决问题,而不是一开始就阻止它发生。
我已经从原始模板中删除了 header,因此菜单最初出现在顶部;然而,当用户第一次向下滚动页面时,菜单以类似的方式弹跳,所以缺陷在原始模板中,而不是由于我所做的任何更改。
我已将修改后的模板发布在下面的 url 以防下面的代码不够用。
https://1drv.ms/t/s!AnHSMVz7JJ2Ocf9KoYS67t_6ZqI
jQuery(document).ready(function($) {
var $filter = $('.main-navigationbwrap');
var $filterSpacer = $('<div />', {
"class": "filter-drop-spacer",
"height": $filter.outerHeight()
});
if ($filter.size())
{
$(window).scroll(function ()
{
if (!$filter.hasClass('fix') && $(window).scrollTop() > $filter.offset().top)
{
$filter.before($filterSpacer);
$filter.addClass("fix");
}
else if ($filter.hasClass('fix') && $(window).scrollTop() < $filterSpacer.offset().top)
{
$filter.removeClass("fix");
$filterSpacer.remove();
}
});
}
});
好的,您已删除 header HTML。
现在您也可以删除 jQuery。因为要确保您的菜单导航位置始终固定在顶部,您可以仅通过 CSS 来做到这一点。下面是示例 CSS。
.site-headerbwrap {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 9999;
}
在你的情况下:在 ]]></b:skin>
行之前粘贴上面的 CSS 代码,然后保存你的模板
可以在以下位置找到我修改过的模板的工作演示 url:
https://newbloggerthemes.com/base-wp-blogger-template/demo/
我一直无法确定是什么导致了固定导航菜单令人讨厌的弹跳。如果向下滚动页面,菜单应该向上移动并在其顶部边框到达页面顶部时停止;然而,它实际上刚好移过页面顶部,然后又弹回来,导致恼人的弹跳。
如何消除这种反弹?我假设这可能是由用于查询菜单位置的 jQuery 代码引起的。就好像代码是在事后解决问题,而不是一开始就阻止它发生。
我已经从原始模板中删除了 header,因此菜单最初出现在顶部;然而,当用户第一次向下滚动页面时,菜单以类似的方式弹跳,所以缺陷在原始模板中,而不是由于我所做的任何更改。
我已将修改后的模板发布在下面的 url 以防下面的代码不够用。
https://1drv.ms/t/s!AnHSMVz7JJ2Ocf9KoYS67t_6ZqI
jQuery(document).ready(function($) {
var $filter = $('.main-navigationbwrap');
var $filterSpacer = $('<div />', {
"class": "filter-drop-spacer",
"height": $filter.outerHeight()
});
if ($filter.size())
{
$(window).scroll(function ()
{
if (!$filter.hasClass('fix') && $(window).scrollTop() > $filter.offset().top)
{
$filter.before($filterSpacer);
$filter.addClass("fix");
}
else if ($filter.hasClass('fix') && $(window).scrollTop() < $filterSpacer.offset().top)
{
$filter.removeClass("fix");
$filterSpacer.remove();
}
});
}
});
好的,您已删除 header HTML。
现在您也可以删除 jQuery。因为要确保您的菜单导航位置始终固定在顶部,您可以仅通过 CSS 来做到这一点。下面是示例 CSS。
.site-headerbwrap {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 9999;
}
在你的情况下:在 ]]></b:skin>
行之前粘贴上面的 CSS 代码,然后保存你的模板