当您向下滚动页面时,右侧/左侧面板以及面板中的所有块也会向上移动。一些网站具有特性,在到达网站顶部后,右侧或左侧面板中的一个块会冻结并且不会再向上移动。这是通过CSS实现的吗?
Gmail就是一个例子。在Gmail中打开一封长邮件,向上和向下滚动时请注意右侧面板。同时还要注意随着页面滚动而出现在电子邮件对话框顶部的按钮。
实际上,我已经通过页面上的一小段JS完成了这个。具体的示例可以在这里找到 http://viralpatel.net/blogs/scroll-fix-header-jquery-facebook/ 通常情况下,当您想要冻结的面板到达页面顶部时,您需要动态应用 position:fixed
CSS样式。JQuery可以帮助您提供 scroll
事件处理程序。
var rightpane = $('#rightpane');
// this gets the top offset of the div on the document
var start = $(rightpane).offset().top;
$.event.add(window, "scroll", function() {
// the number of pixels that are hidden from view above the scrollable area
var p = $(window).scrollTop();
$(rightpane).css('position',((p)>start) ? 'fixed' : '');
// at the top of the screen (0 px offset) if scrolled
$(rightpane).css('top',((p)>start) ? '0px' : '');
});
您想要的功能需要使用Javascript。在Drupal中,可以通过安装Floating Block模块来实现此功能。请参见http://drupal.org/project/floating_block
你可以轻松地使用CSS功能position:fixed来实现这一点,还可以通过使用top或bottom:0px和left或right 0px来设置该块的位置:
<div id="float_bar"></div>
#float_bar{position:fixed;right:0px;top:10px}
您可以根据您的需求设置正确和顶部。