如何仅在滚动时显示滚动条(使用jQuery)
我目前正在构建一个底部带有导航栏的测验应用程序,其中包含问题数量的项目符号: 我的页面底部有一个滚动条(水平),它是一个导航条。就像你在移动应用程序上经常看到的那样。我没有或不想看到滚动条,要滚动,我只需点击并拖动到一边(或在平板电脑上点击并拖动)。这是目前工作良好 问题 我想添加的功能是一个小的深蓝色滚动条,只有在我滚动时才会弹出。我想如果我用一个div来代替滚动条,这将是最简单的,这样就可以用css进行调整。现在我有了div,它和条一起滚动,自动调整到问题的长度和当前位置 你知道我如何在滚动发生时显示滚动条吗?我宁愿不把它放在悬停状态,而只放在运动状态 我尝试了以下方法:如何仅在滚动时显示滚动条(使用jQuery),jquery,html,scroll,scrollbar,Jquery,Html,Scroll,Scrollbar,我目前正在构建一个底部带有导航栏的测验应用程序,其中包含问题数量的项目符号: 我的页面底部有一个滚动条(水平),它是一个导航条。就像你在移动应用程序上经常看到的那样。我没有或不想看到滚动条,要滚动,我只需点击并拖动到一边(或在平板电脑上点击并拖动)。这是目前工作良好 问题 我想添加的功能是一个小的深蓝色滚动条,只有在我滚动时才会弹出。我想如果我用一个div来代替滚动条,这将是最简单的,这样就可以用css进行调整。现在我有了div,它和条一起滚动,自动调整到问题的长度和当前位置 你知道我如何在滚
$('#wrapper').scroll(function() {
$('#navScrollbar').toggleClass("hidden");
});
隐藏的类显然包含“可见性:隐藏;”。这不适用于每次滚动都会切换类的情况。创建一个每隔一两秒运行一次的ticker函数
var isUserScrolling = false;
var navScrollbar = $('#navScrollbar');
function ToggleScrollbarVisiblity()
{
if(isUserScrolling == false)
navScrollbar.stop().fadeOut();
isUserScrolling = false;
}
setInterval(ToggleScrollbarVisiblity, 1500);
$('#wrapper').scroll(function() {
if(isUserScrolling == false)
navScrollbar.stop().fadeIn();
isUserScrolling = true;
});
这将有望做到的是:
- 当用户开始滚动时,在滚动条中淡入淡出,并将布尔值设置为true
- 每x秒将滚动设置为false
- 当x秒返回时,如果仍然为假(用户已经x秒没有滚动),则淡出
如果您遇到滚动条在错误的时间淡出的问题,那么这就是时间问题。然后协调时间,尝试:
var scrollThread = null;
var isUserScrolling = false;
var navScrollbar = $('#navScrollbar');
function ToggleScrollbarVisiblity()
{
if(isUserScrolling == false) {
navScrollbar.stop().fadeOut();
clearInterval(scrollThread);
}
isUserScrolling = false;
}
$('#wrapper').scroll(function() {
if(isUserScrolling == false) {
navScrollbar.stop().fadeIn();
scrollThread = setInterval(ToggleScrollbarVisiblity, 1500);
}
isUserScrolling = true;
});
创建一个每隔一两秒运行一次的ticker函数
var isUserScrolling = false;
var navScrollbar = $('#navScrollbar');
function ToggleScrollbarVisiblity()
{
if(isUserScrolling == false)
navScrollbar.stop().fadeOut();
isUserScrolling = false;
}
setInterval(ToggleScrollbarVisiblity, 1500);
$('#wrapper').scroll(function() {
if(isUserScrolling == false)
navScrollbar.stop().fadeIn();
isUserScrolling = true;
});
这将有望做到的是:
- 当用户开始滚动时,在滚动条中淡入淡出,并将布尔值设置为true
- 每x秒将滚动设置为false
- 当x秒返回时,如果仍然为假(用户已经x秒没有滚动),则淡出
如果您遇到滚动条在错误的时间淡出的问题,那么这就是时间问题。然后协调时间,尝试:
var scrollThread = null;
var isUserScrolling = false;
var navScrollbar = $('#navScrollbar');
function ToggleScrollbarVisiblity()
{
if(isUserScrolling == false) {
navScrollbar.stop().fadeOut();
clearInterval(scrollThread);
}
isUserScrolling = false;
}
$('#wrapper').scroll(function() {
if(isUserScrolling == false) {
navScrollbar.stop().fadeIn();
scrollThread = setInterval(ToggleScrollbarVisiblity, 1500);
}
isUserScrolling = true;
});
这个问题很久以前就被问到了,当时我还没有多少经验。由于这个问题很久以前就被提出了,我将给出所选择的解决方案作为答案:
var scrollbarTimeout;
$('#wrapper').scroll(function() {
$('#navScrollbar').show();
clearTimeout(scrollbarTimeout);
scrollbarTimeout = setTimeout(function()
{
// Your function here
$('#navScrollbar').hide();
}, 500);
});
每当滚动事件发生时,这段代码的作用是:被调用的函数创建(或清除并创建)一个超时,在500毫秒后隐藏滚动条。这个问题很久以前就被问到了,当时我还没有太多经验。由于这个问题很久以前就被提出了,我将给出所选择的解决方案作为答案:
var scrollbarTimeout;
$('#wrapper').scroll(function() {
$('#navScrollbar').show();
clearTimeout(scrollbarTimeout);
scrollbarTimeout = setTimeout(function()
{
// Your function here
$('#navScrollbar').hide();
}, 500);
});
每当发生滚动事件时,此代码的作用是:被调用的函数创建(或清除并创建)一个超时,该超时在500毫秒后隐藏滚动条