我使用二十五个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 );
中,但它不起作用,可能是我没有做好,或者我应该做别的事情?
提前致谢!
答案 0 :(得分:0)
据我所知,问题是侧边栏功能在scroll()函数内部。导出
$sidebar.attr('style'....with the fixed position and visibility visible if necessary
这个函数之外的某个地方(在(document).ready statement :)中更好 还要添加:你有
windowPos > lastWindowPos
在刷新的页面上,您不会进入此范围 询问您是否需要进一步的帮助