マウスオーバーすると色が変わるボタンのセットがあります。これらの CSS は次のように実行されます。
#navsite ul li button
{
height: 60px;
width: 60px;
background-image: -moz-linear-gradient(bottom, black, #4D4D4D);
box-shadow: 2px 3px 3px 2px #888888;
border-radius: 15px;
border-color: 359ABC;
cursor: pointer;
margin-left: 5px;
margin-right: 5px;
vertical-align: bottom;
}
#navsite ul li button:hover
{
height: 60px;
width: 60px;
background-image: none;
background-color: #00054C;
box-shadow: 2px 3px 3px 2px #888888;
border-radius: 15px;
border-color: 359ABC;
cursor: pointer;
margin-left: 5px;
margin-right: 5px;
vertical-align: bottom;
}
次に、JavaScript はクリック時に色を変更します (以下の例は 5 つのボタンのうちの 1 つをカバーしており、各ボタンには関数があります。大量を許してください)。
function dude()
{
document.getElementById("dude").hidden=false;
document.getElementById("bob").hidden=true;
document.getElementById("ted").hidden=true;
document.getElementById("joe").hidden=true;
document.getElementById("fred").hidden=true;
document.getElementById("button1").style.background='#00054C';
document.getElementById("button2").style.background='-moz-linear-gradient(bottom, black, #4D4D4D)';
document.getElementById("button3").style.background='-moz-linear-gradient(bottom, black, #4D4D4D)';
document.getElementById("button4").style.background='-moz-linear-gradient(bottom, black, #4D4D4D)';
document.getElementById("button5").style.background='-moz-linear-gradient(bottom, black, #4D4D4D)';
}
私の問題は、このスクリプトがアクティブ化された後、CSS ルール#navsite ul li button:hover
が適用されなくなり、マウスオーバー効果がまったくないことです。CSS の適切な実行を停止しないようにスクリプトを修正するにはどうすればよいですか?
編集: その CSS 句をスクリプト自体の一部に変換することを検討する必要がありますか? スクリプトを CSS 句に変換することは不可能であることがわかったので、リソースを最小限に抑えたいと考えています。
色自体をリストする代わりに、アクティブなクラスと非アクティブなクラスをリストするようにスクリプトを変更しました。ただし、それでもかなりかさばります。それを凝縮する方法についてのアイデアはありますか?