javascript - 使用按钮而不是滚动条滚动 css、html、javascript

标签 javascript html css scroll navbar

我不想制作可滚动的水平导航栏。但是,我希望当光标悬停在指向导航栏滚动方向的按钮上时,导航栏中的元素能够滚动。有关如何执行此操作的任何信息都将非常有帮助。谢谢。

最佳答案

你可以做something like this ,它使用 javascript 来防止任何类型的滚动,除非向上或向下箭头悬停在上方。

var down = document.getElementById('down'),
    up = document.getElementById('up'),
    body = document.body;

var timeout;
down.onmouseover = function (e) {
    timeout = setInterval(function () {        
        window.scrollBy(0, 7);
    }, 20)
};
down.onmouseout = function (e) {
    if (timeout) {
        clearInterval(timeout);
    }
};

up.onmouseover = function (e) {
    timeout = setInterval(function () {     
        window.scrollBy(0, -7);
    }, 20)
};
up.onmouseout = function (e) {
    if (timeout) {
        clearInterval(timeout);
    }
};


// left: 37, up: 38, right: 39, down: 40,
// spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36, backspace: 8
var keys = [37, 38, 39, 40, 32, 34, 33, 35, 36, 8];

function preventDefault(e) {
  e = e || window.event;
  if (e.preventDefault)
      e.preventDefault();
  e.returnValue = false;  
}

function keydown(e) {
    for (var i = keys.length; i--;) {
        if (e.keyCode === keys[i]) {
            preventDefault(e);
            return;
        }
    }
}

function wheel(e) {
  preventDefault(e);
}

感谢 galambalazs 的回答 in this SO question这帮助我禁用页面滚动

关于javascript - 使用按钮而不是滚动条滚动 css、html、javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18262315/

相关文章:

javascript - 使用 Javascript 随机化 Div 标签

javascript - Masonry 和动态选项卡

javascript - 当光标隐藏在其他 HTML 元素后面时如何触发 mouseenter 事件?

html - CSS:使 Flexbox 布局静态化

javascript - 如何确定状态何时完成更新?

Javascript - 绘制曲线矩形的函数

javascript - 如何保持DIV拉伸(stretch)到高度为100%的网页底部并溢出:auto using CSS only?

html - 并排对齐两个div?

html - 使用链接滚动文章而不关闭模式

javascript - 三 JS 网格在模型的另一侧可见