ウェブページを作成して、基本的に色を反転させる独自のライトスイッチを作成しました。黒が白に、逆に色が変化しますが、色を変更するリンクが得られません。私はアンカータグとa:visited、a:リンクを変えて別の色に変えたいが、動作させることはできない。JavaScriptを使用してリンクの色を変更します
HTML:
<nav>
<h1>My Portfolio</h1>
<ol>
<li><a title="Link to My Cover Letter & CV" href="index.html">My Cover Letter & CV</a> | </li>
<li><a title="Link to My Projects" href="">My Projects</a> | </li>
<li><a title="Link to Temp" href="">Temp</a> | </li>
<li><a title="Link to Temp" href="personalDev.html">Temp</a></li>
</ol>
</nav> <!-- Closes Nav -->
CSS:
/*Links*/
a, a:link, a:visited {
color: black;
text-decoration: none;
transition: 1s;
}
/*Link hovering*/
nav a:hover {
text-decoration: none;
border: solid 1px black;
border-radius: 5px;
padding: 10px;
}
Javascriptを:
またdocument.addEventListener ("DOMContentLoaded", handleDocumentLoad);
function handleDocumentLoad() {
//Variable
var offSwitch = document.getElementById("lightSwitchOff"); //Targets div with ID lightSwitchOff
var onSwitch = document.getElementById("lightSwitchOn"); //Targets div with ID lightSwitchOn
var border = document.getElementById("mainContent"); //Targets the mainContent
offSwitch.innerHTML = "Turn On Night Mode";
onSwitch.innerHTML = "Turn Off Night Mode";
onSwitch.style.display = "none";
//Event Listener
offSwitch.addEventListener("click", lightsOff); //When clicked this action is performed
onSwitch.addEventListener("click", lightsOn); //When clicked this action is performed
//Function
function lightsOff() { /*This changes the background colour to black and makes text white*/
document.body.style.backgroundColor = "#000000";
document.body.style.color = "#FFFFFF";
border.style.borderColor = "#FFFFFF";
onSwitch.innerHTML = "Turn Off Night Mode";
onSwitch.style.display = "inline";
offSwitch.style.display = "none";
}
function lightsOn() { /*This changes the background colour to a white and makes text black*/
document.body.style.backgroundColor = "#FFFFFF";
document.body.style.color = "#000000";
border.style.borderColor = "#000000";
offSwitch.innerHTML = "Turn On Night Mode";
onSwitch.style.display = "none";
offSwitch.style.display = "inline";
}
}
たとえば、ユーザーのためのように、ページの状態を保存する方法があった場合、私は思っていましたライトスイッチを押して、ページを更新し、それはまだ同じです。
しかし、あなたのhtmlにそのようなid-sを持つ要素はありません。何か不足していますか?あなたのコメントによれば、実際にはjsのアンカータグを扱うコードはありません –
JSを介してbodyまたはhtml要素にクラスを設定し、スタイルシートで色を変更する方が良い方法です。 1つは、JSを使ってインラインスタイルを設定するのではなく、スタイリングにCSSを使用しているため、読みやすく、 ':hover'、':focus'、 ':active'のスタイルを設定することができます。また、どの動的に追加されたコンテンツも自動的に正しいスタイルを持ちます。 – Connum
ライトのオン/オフを定義する2つのcssクラスを作成し、これらのクラスをエレメントに追加したり、エレメントに追加したりすることが考えられます。クラスに要素を追加するには、document.getElementById( "peace")。className = "light-on"を使用します。ページのリフレッシュを保持する場合は、ローカルストレージに値を格納する方法を検討する必要があります。https://developer.mozilla。org/ja-ja/docs/Web/API/Window/localStorage – Dean