当滚动处于活动状态时,使页脚消失
make footer disappear when scroll is active
我使用的是jQuery mobile。
如何在滚动处于活动状态时使页脚消失?
当滚动停止时,我想再次显示页脚。
HTML片段如下:
<div id="footer" data-role="footer" data-position="fixed" data-corners="false">
使用$.scroll
在滚动时隐藏页脚,使用setTimeout
在滚动停止时再次显示页脚:
var scrolling;
$(window).scroll(function() {
clearTimeout(scrolling);//clear any existing timeout
$("#footer").hide();
scrolling = setTimeout(function(){$("#footer").show();},100);//set the timeout to hide the footer (will be cancelled if scrolling continues)
})
http://jsfiddle.net/c6uqdhjo/1/
使用jquery滚动事件。
您可以在文档中找到信息:http://api.jquery.com/scroll/
类似(未测试!)的东西:
$(window).scroll(function() {
$("#footer").hide();
});
请参阅测试页面
var pageIsScrolling = (function(){
var timer, body = $(document.body);
return function(){
clearTimeout(timer);
timer = setTimeout(scrollEnd, 250);
body .addClass('scrolling');
}
function scrollEnd(){
timer = null;
body.removeClass('scrolling');
}
})();
$(window).on('scroll.scrolling', pageIsScrolling);
现在,无论何时开始滚动,主体都有类scrolling
,您可以在CSS中针对它,如下所示:
.scrolling > footer{ opacity:0; }
或者甚至为页脚添加过渡,使其看起来更平滑
(我很确定这应该也适用于jQuery mobile)
注意事项:
- 我可以直接从javascript中处理
footer
元素,但我相信使用通用状态类是在应用程序中更改状态的更好方法,然后您可以从中派生任何您想要的CSS,因此,在这里,所需的状态类是"滚动" - 我在这里使用自定义事件名称空间,这是一种很好的做法
- 使用元素缓存(主体)
- 为了更好的可读性,
scrollEnd
函数是分离的,并且不直接写在setTimeout
内部
相关文章:
- Android上的引导弹出窗口在页面滚动后消失
- 滚动条在关闭引导对话框后消失
- 动画标题在向上滚动时消失
- 使用D3.js生成的SVG图形在Safari中滚动时消失
- extjs 3.4 滚动条在面板折叠时消失
- 当我通过javascript添加警报并取消事件时,滚动条消失了
- 要随索引页一起加载的滚动更新,并在 iframe 加载来自链接的内容时消失
- 固定 Div 内的相对 DIV 内的绝对 DIV 在滚动时消失
- 一旦我在特定部分滚动,就会使某个 id 消失
- Jcarousel 图像在滚动事件后消失
- jQuery自动完成框在滚动中消失
- 当滚动处于活动状态时,使页脚消失
- 在水平滚动的冻结列中消失文本
- Jquery html/css:在滚动时显示和消失的固定标题上创建下拉阴影
- 出现,消失的“滚动到顶部”链接与jQuery和CSS
- 我怎样才能使我的头淡出/消失在向下滚动和重新出现在向上滚动
- 如何让浏览器的滚动条消失
- Jquery水平滚动条消失
- 导航菜单在滚动时逐渐消失
- "自制的“;平滑地消失滚动条