页面刷新时粘滞侧边栏的可见性

时间:2015-10-31 16:02:10

标签: jquery wordpress sidebar sticky page-refresh

我使用二十五个WP主题的粘性侧边栏脚本来表示我的二十七岁儿童主题。一切都运作良好,甚至侧栏仍然在页面刷新的最后位置(如我所愿)。唯一的小问题是,当访问者刷新页面时,侧边栏不会出现,访问者必须开始滚动以查看其位置的侧边栏。

我使用Jquery v.1.11.3

剧本:

java -version >> test.txt

如何在重新加载时显示该页面?我试图将整个脚本放在( function( $ ) { var $body, $window, $sidebar, adminbarOffset, top = false, bottom = false, windowWidth, windowHeight, lastWindowPos = 0, topOffset = 0, bodyHeight, sidebarHeight, resizeTimer, secondary, button; // Sidebar scrolling. function resize() { windowWidth = $window.width(); if (1102 > windowWidth) { top = bottom = false; $sidebar.removeAttr('style'); } } function scroll() { var windowPos = $window.scrollTop(); if (1102 > windowWidth) { return; } sidebarHeight = $sidebar.height(); windowHeight = $window.height(); bodyHeight = $body.height(); if (sidebarHeight + adminbarOffset > windowHeight) { if (windowPos > lastWindowPos) { // scroll down if (top) { top = false; topOffset = ($sidebar.offset().top > 0) ? $sidebar.offset().top - adminbarOffset : 0; $sidebar.attr('style', 'top: ' + topOffset + 'px;'); } else if (! bottom && windowPos + windowHeight > sidebarHeight + $sidebar.offset().top && sidebarHeight + adminbarOffset < bodyHeight) { bottom = true; $sidebar.attr('style', 'position: fixed; bottom: 0; margin: 0'); } } else if (windowPos < lastWindowPos) { // scroll up if (bottom) { bottom = false; topOffset = ($sidebar.offset().top > 0) ? $sidebar.offset().top - adminbarOffset : 0; $sidebar.attr('style', 'top: ' + topOffset + 'px;'); } else if ( ! top && windowPos + adminbarOffset < $sidebar.offset().top ) { top = true; $sidebar.attr('style', 'position: fixed; margin: 0'); } } else { top = bottom = false; topOffset = ($sidebar.offset().top > 0) ? $sidebar.offset().top - adminbarOffset : 0; $sidebar.attr('style', 'top: ' + topOffset + 'px;'); } } else if (! top) { top = true; $sidebar.attr('style', 'position: fixed; margin: 0'); } lastWindowPos = windowPos; } function resizeAndScroll() { resize(); scroll(); } $(document).ready( function() { $body = $(document.body); $window = $(window); $sidebar = $('#secondary').first(); adminbarOffset = $body.is('.admin-bar') ? $('#wpadminbar').height() : 0; $window .on('scroll.twentyeleven', scroll) .on('load.twentyeleven', onResizeARIA) .on('resize.twentyeleven', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(resizeAndScroll, 500); onResizeARIA(); } ); $sidebar.on('click.twentyeleven keydown.twentyeleven', 'button', resizeAndScroll); *resizeAndScroll(); for (var i = 1; i < 6; i++) { setTimeout(resizeAndScroll, 100 * i); }* }); } )( jQuery ); 中,但它不起作用,可能是我没有做好,或者我应该做别的事情?

提前致谢!

1 个答案:

答案 0 :(得分:0)

据我所知,问题是侧边栏功能在scroll()函数内部。导出

 $sidebar.attr('style'....with the fixed position and visibility visible if necessary

这个函数之外的某个地方(在(document).ready statement :)中更好 还要添加:你有

 windowPos > lastWindowPos

在刷新的页面上,您不会进入此范围 询问您是否需要进一步的帮助