使用按钮滚动,而不是滚动条css、html、javascript
我不想制作一个可滚动的水平导航条。但是,我希望当光标悬停在指向导航栏滚动方向的按钮上时,导航栏中的项目能够滚动。关于我如何做到这一点的任何信息都将非常有用。谢谢。你可以尝试几样东西。首先,您的按钮可以是本地锚,通过CSS您可以指定悬停或悬停样式,这将允许您调用切换导航栏按钮的函数,与旧式翻滚相同,但使用不同的点火事件。您可以这样做,它使用javascript防止任何类型的滚动,除非向上或向下箭头悬停在上方使用按钮滚动,而不是滚动条css、html、javascript,javascript,html,css,scroll,navbar,Javascript,Html,Css,Scroll,Navbar,我不想制作一个可滚动的水平导航条。但是,我希望当光标悬停在指向导航栏滚动方向的按钮上时,导航栏中的项目能够滚动。关于我如何做到这一点的任何信息都将非常有用。谢谢。你可以尝试几样东西。首先,您的按钮可以是本地锚,通过CSS您可以指定悬停或悬停样式,这将允许您调用切换导航栏按钮的函数,与旧式翻滚相同,但使用不同的点火事件。您可以这样做,它使用javascript防止任何类型的滚动,除非向上或向下箭头悬停在上方 var down = document.getElementById('down'),
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>
<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,最终除了切换边框颜色之外什么也做不了。添加到代码中意味着删除几乎所有的代码,然后自己编写。至于我处理垂直滚动的解决方案,这是一个可以编辑的示例,而不是最终产品