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

使用按钮滚动,而不是滚动条css、html、javascript,javascript,html,css,scroll,navbar,Javascript,Html,Css,Scroll,Navbar,我不想制作一个可滚动的水平导航条。但是,我希望当光标悬停在指向导航栏滚动方向的按钮上时,导航栏中的项目能够滚动。关于我如何做到这一点的任何信息都将非常有用。谢谢。你可以尝试几样东西。首先,您的按钮可以是本地锚,通过CSS您可以指定悬停或悬停样式,这将允许您调用切换导航栏按钮的函数,与旧式翻滚相同,但使用不同的点火事件。您可以这样做,它使用javascript防止任何类型的滚动,除非向上或向下箭头悬停在上方 var down = document.getElementById('down'),

我不想制作一个可滚动的水平导航条。但是,我希望当光标悬停在指向导航栏滚动方向的按钮上时,导航栏中的项目能够滚动。关于我如何做到这一点的任何信息都将非常有用。谢谢。

你可以尝试几样东西。首先,您的按钮可以是本地锚,通过CSS您可以指定悬停或悬停样式,这将允许您调用切换导航栏按钮的函数,与旧式翻滚相同,但使用不同的点火事件。

您可以这样做,它使用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);
}

加拉姆巴拉兹的回答帮助我禁用了页面滚动,这是我想到的

上一个答案使用setInterval函数来连续切换,我可以;还没开始工作

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>

 <script type="text/javascript">

    var images=["img1","img2","img3","img4"]
    var imgIndex = 0
    window.setInterval(function () { moveleft() }, 100)
    window.setInterval(function () { moveright()},100)


    function function1() {

       document.getElementById(images[imgIndex]).className = "turnon"

    }

    function moveleft() {

        imgIndex = imgIndex - 1
        if (imgIndex < 0) {
            imgIndex = images.length - 1
            document.getElementById(images[imgIndex]).className = "turnon"
            document.getElementById(images[0]).className = "turnoff"

        } else {
            document.getElementById(images[imgIndex]).className = "turnon"
            document.getElementById(images[imgIndex + 1]).className = "turnoff"

        }


    }


    function moveright() {
        imgIndex = imgIndex + 1
        if (imgIndex > (images.length - 1)) {
            imgIndex = 0
            document.getElementById(images[imgIndex]).className = "turnon"
            document.getElementById(images[images.length - 1]).className = "turnoff"
        }
        else {
            document.getElementById(images[imgIndex]).className = "turnon"
            document.getElementById(images[imgIndex - 1]).className = "turnoff"
        }


    }

</script>
<style type="text/css">
.turnon
{
    border: medium solid #FF0000
}

.turnoff
{
   border: medium solid #FFCC00
}
</style>
</head>
<body onload="function1()">
    <img src="1.jpg" id="img1" class="turnoff" />
    <img src="2.jpg" id="img2" class="turnoff"/>
    <img src="3.jpg" id="img3" class="turnoff"/>
    <img src="4.jpg" id="img4" class="turnoff"/>
    <p></p>
    <a href="#" ><img src="left.jpg"onmouseover="moveleft()"/></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <a href="#" ><img src="right.jpg" onmouseover="moveright()" /></a>
</body>
</html>

无标题页
var图像=[“img1”、“img2”、“img3”、“img4”]
var imgIndex=0
setInterval(函数(){moveleft()},100)
setInterval(函数(){moveright()},100)
函数function1(){
document.getElementById(images[imgIndex]).className=“打开”
}
函数moveleft(){
imgIndex=imgIndex-1
if(imgIndex<0){
imgIndex=images.length-1
document.getElementById(images[imgIndex]).className=“打开”
document.getElementById(图像[0]).className=“关闭”
}否则{
document.getElementById(images[imgIndex]).className=“打开”
document.getElementById(图像[imgIndex+1]).className=“关闭”
}
}
函数moveright(){
imgIndex=imgIndex+1
如果(imgIndex>(images.length-1)){
imgIndex=0
document.getElementById(images[imgIndex]).className=“打开”
document.getElementById(images[images.length-1]).className=“关闭”
}
否则{
document.getElementById(images[imgIndex]).className=“打开”
document.getElementById(images[imgIndex-1]).className=“关闭”
}
}
.打开
{
边框:中等纯色#FF0000
}
.关掉
{
边框:中等纯色#FFCC00
}


你能举例说明你的意思吗?一般来说,你应该在帖子上编辑答案,而不是添加新答案。为什么要发布一个不起作用的答案呢?当然,你是对的,但我无法在原始帖子中找到答案。大概有点长。我是一个新用户,仍在学习如何使用stackoverflow。至于为什么,为什么要问为什么,而不是建设性的,也许是添加到我的代码。有助于指出正确方向的答案总比根本没有答案好。是什么阻止我指出你的答案与被问的问题有90度的偏差?我问为什么,因为这不是OP想要的。这根本不会阻止默认的滚动,完全依赖于页面中充满了
img
s,最终除了切换边框颜色之外什么也做不了。添加到代码中意味着删除几乎所有的代码,然后自己编写。至于我处理垂直滚动的解决方案,这是一个可以编辑的示例,而不是最终产品