gpt4 book ai didi

javascript - 如何使用带有多个按钮的 javascript 更改按钮颜色?

转载 作者:行者123 更新时间:2023-11-28 01:34:04 27 4
gpt4 key购买 nike

function go(loc) {
var iframe = document.getElementById("iframe");
iframe.style.display = "block";
document.getElementById('iframe').src = loc;
document.getElementById("p").innerHTML = "";
}
html, body {cursor: url(files/cursor.cur), progress !important;Height:100%;}
html {background-image:url(files/bg.jpg);background-attachment:fixed;background-position:center;background-size:cover;}
body {width:80%;background-color:rgba(255,255,255,0.8);margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;}
p {margin-right:10px;margin-left:10px;}
iframe {overflow: hidden; height: 80%; width: 100%;}
img {display:block;margin-left:auto;margin-right:auto;}

table {border-collapse:collapse; font-family:calibri;border-style: outset;border-color:#FFFF00;border-width:5px;s}
td {font-size:16px;border-width:1px;border-style:solid;border-color:#FFFF00;background-color:#FFFFFF}
th {font-size:18px;font-weight:bold;background-color:#FFEE00;border-color:#FFFF00;border-style:solid;border-width:1px;}

.font1 {font-family:calibri;font-size:16px;}
.font2 {font-family:calibri;font-size:18px;text-decoration:underline;}

#menu1 a {display: block; background-color: #0066FF; text-decoration: none; font-family: calibri; font-size: 20px; color: #FFFFFF; padding: 10px 10px;}
#menu1 a:hover {background-color: #0088FF;}
#menu1 li {display: inline-block;}
#menu1 ul {list-style: none; text-align: center; margin: 0 auto; padding:0px;}

#menu2 a {display: block; background-color: #0066FF; text-decoration: none; font-family: calibri; font-size: 16px; color: #FFFFFF; padding: 10px 10px;}
#menu2 a:hover {background-color: #0088FF;}
#menu2 li {display: inline-block;}
#menu2 ul {list-style: none; text-align: center; margin: 0 auto; padding:0px;}
<!DOCTYPE html>
<html style="height:105%;">
<head>
<title>Foto's</title>
<link rel="icon" type="image" href="files/icon.png">
<link rel="stylesheet" href="style.css">
<script src="files/javascript.js"></script>
</head>
<body>
<br>

<div id="menu1">
<ul>
<li><a href="index.html">Welkom</a></li>
<li><a href="agenda.html">Agenda</a></li>
<li><a href="fotos.html">Foto's</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<br>

<div id="menu2">
<ul>
<li><a onclick="go('camera/1993-1994.html')">1993-1994</a></li>
<li><a onclick="go('camera/1994-2003.html')">1994-2003</a></li>
<li><a onclick="go('camera/2003-2004.html')">2003-2004</a></li>
<li><a onclick="go('camera/2005-2006.html')">2005-2006</a></li>
<li><a onclick="go('')">2006-2007</a></li>
<li><a onclick="go('')">2007-2008</a></li>
<li><a onclick="go('')">2008-2009</a></li>
<li><a onclick="go('')">2009-2010</a></li>
<li><a onclick="go('')">2010-2011</a></li>
<li><a onclick="go('')">2011-2012</a></li>
<li><a onclick="go('')">2012-2013</a></li>
<li><a onclick="go('')">2013-2014</a></li>
<li><a onclick="go('')">2014-2015</a></li>
</ul>
</div>
<p class="font1" id="p" align="center">Kies een schooljaar om de foto's te zien.</p>
<iframe id="iframe" src="about:blank" frameborder="0"></iframe>
</body>
</html>

我试图在单击按钮时使按钮的颜色变浅,而不给每个按钮一个单独的 id。有没有办法让我的javascript找到点击的按钮,这样它就可以改变它的颜色?此外,当它不再处于事件状态时,它应该恢复到原来的颜色。如果有 html 或 css 的解决方案,那也很好。

谢谢。

最佳答案

我看到您没有使用 jQuery,所以我将坚持使用不使用 jQuery 的 CSS/JavaScript 解决方案。

四个简单的步骤:

  1. 为选定/事件按钮创建特定的 CSS 样式:

    a.active {
    background-color: #FF0000;
    }
  2. 使用 this 将按钮传递给 go() 函数:

    <a onclick="go('camera/1993-1994.html', this)">1993-1994</a>

    在 JavaScript 中:

    function go(loc, this) {
    var iframe = document.getElementById("iframe");
    iframe.style.display="block";
    document.getElementById('iframe').src = loc;
    document.getElementById("p").innerHTML = "";
    }
  3. 修改 go() 函数以从任何事件按钮(如果有)中删除类 active;和

  4. active 类添加到作为 this 传递的按钮。

生成的 go() 函数如下所示:

    function go(loc, obj){
// if there's an active link, remove the active class
if (document.querySelector(".active")) {
document.querySelector(".active").className = document.querySelector(".active").className.replace(" active",""); }
// add the active class to the current link
obj.className = obj.className + " active";

// the rest is the same
var iframe = document.getElementById("iframe");
iframe.style.display="block";
document.getElementById('iframe').src = loc;
document.getElementById("p").innerHTML = "";
}

最终代码如下所示(根据您的原始代码修改):

function go(loc, obj){

// NEW
if (document.querySelector(".active")) {
document.querySelector(".active").className = document.querySelector(".active").className.replace(" active","");
}
obj.className = obj.className + " active";

var iframe = document.getElementById("iframe");
iframe.style.display="block";
document.getElementById('iframe').src = loc;
document.getElementById("p").innerHTML = "";
}
html, body {cursor: url(files/cursor.cur), progress !important;Height:100%;}
html {background-image:url(files/bg.jpg);background-attachment:fixed;background-position:center;background-size:cover;}
body {width:80%;background-color:rgba(255,255,255,0.8);margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;}
p {margin-right:10px;margin-left:10px;}
iframe {overflow: hidden; height: 80%; width: 100%;}
img {display:block;margin-left:auto;margin-right:auto;}

table {border-collapse:collapse; font-family:calibri;border-style: outset;border-color:#FFFF00;border-width:5px;s}
td {font-size:16px;border-width:1px;border-style:solid;border-color:#FFFF00;background-color:#FFFFFF}
th {font-size:18px;font-weight:bold;background-color:#FFEE00;border-color:#FFFF00;border-style:solid;border-width:1px;}

.font1 {font-family:calibri;font-size:16px;}
.font2 {font-family:calibri;font-size:18px;text-decoration:underline;}

/** NEW **/
a.active { background-color: red !important; }

#menu1 a {display: block; background-color: #0066FF; text-decoration: none; font-family: calibri; font-size: 20px; color: #FFFFFF; padding: 10px 10px;}
#menu1 a:hover {background-color: #0088FF;}
#menu1 li {display: inline-block;}
#menu1 ul {list-style: none; text-align: center; margin: 0 auto; padding:0px;}

#menu2 a {display: block; background-color: #0066FF; text-decoration: none; font-family: calibri; font-size: 16px; color: #FFFFFF; padding: 10px 10px;}
#menu2 a:hover {background-color: #0088FF;}
#menu2 li {display: inline-block;}
#menu2 ul {list-style: none; text-align: center; margin: 0 auto; padding:0px;}
<!DOCTYPE html>
<html style="height:105%;">
<head>
<title>Foto's</title>
<link rel="icon" type="image" href="files/icon.png">
<link rel="stylesheet" href="style.css">
<script src="files/javascript.js"></script>
</head>
<body>
<br>
<div id="menu1"><ul><li><a href="index.html">Welkom</a></li><li><a href="agenda.html">Agenda</a></li><li><a href="fotos.html">Foto's</a></li><li><a href="contact.html">Contact</a></li></ul></div>
<br>
<div id="menu2"><ul><li><a onclick="go('camera/1993-1994.html',this)">1993-1994</a></li><li><a onclick="go('camera/1994-2003.html',this)">1994-2003</a></li><li><a onclick="go('camera/2003-2004.html',this)">2003-2004</a></li><li><a onclick="go('camera/2005-2006.html',this)">2005-2006</a></li><li><a onclick="go('',this)">2006-2007</a></li><li><a onclick="go('',this)">2007-2008</a></li><li><a onclick="go('',this)">2008-2009</a></li><li><a onclick="go('',this)">2009-2010</a></li><li><a onclick="go('',this)">2010-2011</a></li><li><a onclick="go('',this)">2011-2012</a></li><li><a onclick="go('',this)">2012-2013</a></li><li><a onclick="go('',this)">2013-2014</a></li><li><a onclick="go('',this)">2014-2015</a></li></ul></div>
<p class="font1" id="p" align="center">Kies een schooljaar om de foto's te zien.</p>
<iframe id="iframe" src="about:blank" frameborder="0"></iframe>
</body>
</html>

关于javascript - 如何使用带有多个按钮的 javascript 更改按钮颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29183336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com