以下は私のコードです。しかし、私はonclick
イベントをlabel
要素に追加しなければならなかったが、onclick
コードを使用せずに火災とラジオの両方のリンクをトグルする方法はあるのだろうか?htmlラジオハックと同じページのアンカー(リンク)
label
要素を持っていないのはいいですが、radios
をトグルできませんでした。
私望ましい結果は、インラインでのJavaScriptせずに同じ機能3つの.magic-label
要素でonclick
イベントを持っている以下のコードのためのものです。この作業を行うにはjavascriptが不要であることが望ましく、解決のために必要な場合は、label
要素のみが必要です。
ご協力いただきありがとうございます。
html,
body {
width: 100%;
height: 100%;
position: relative;
}
body {
overflow: hidden;
}
header {
background: #fff;
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 3.5rem;
z-index: 10;
}
nav {
width: 100%;
padding-top: 0.5rem;
}
nav ul {
list-style: none;
width: inherit;
margin: 0;
}
ul li:nth-child(3n + 1),
#main .panel:nth-child(3n + 1) {
background: rgb(0, 180, 255);
}
ul li:nth-child(3n + 2),
#main .panel:nth-child(3n + 2) {
background: rgb(255, 65, 180);
}
ul li:nth-child(3n + 3),
#main .panel:nth-child(3n + 3) {
background: rgb(0, 255, 180);
}
ul li {
display: inline-block;
margin: 0 0px;
margin: 0 0rem;
padding: 0px 0px;
padding: 0.3rem 0.5rem;
border-radius: 2px;
line-height: 1.5;
}
ul li a,
.magic-label {
color: #fff;
text-decoration: none;
}
.panel {
width: 100%;
height: 700px;
z-index: 0;
-webkit-transform: translateZ(0);
transform: translateZ(0);
-webkit-transition: -webkit-transform 0.6s ease-in-out;
transition: transform 0.6s ease-in-out;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.panel h1 {
font-family: sans-serif;
font-size: 64px;
font-size: 4rem;
color: #fff;
position: relative;
line-height: 200px;
top: 20%;
text-align: center;
margin: 0;
}
/*
*Scrolling
*/
a[ id="servicios"]:target ~ #main article.panel {
-webkit-transform: translateY(0px);
transform: translateY(0px);
}
a[ id="galeria"]:target ~ #main article.panel {
-webkit-transform: translateY(-500px);
transform: translateY(-700px);
}
a[ id="contacto"]:target ~ #main article.panel {
-webkit-transform: translateY(-1000px);
transform: translateY(-1400px);
}
/* special code for toggling links*/
a.clicked {
cursor: pointer;
color: inherit;
}
.radio-button {
display: none;
}
#serv-radio:checked~#magic .serv,
#gale-radio:checked~#magic .gale,
#cont-radio:checked~#magic .cont {
color: red;
}
<input type="radio" id="serv-radio" class="radio-button" name="content-magic" checked="checked" />
<input type="radio" id="gale-radio" class="radio-button" name="content-magic" value="" />
<input type="radio" id="cont-radio" class="radio-button" name="content-magic" value="" />
<a id="servicios"></a>
<a id="galeria"></a>
<a id="contacto"></a>
<header id="magic" class="nav">
<nav>
<ul>
<li>
<label for="serv-radio" class="magic-label serv" onclick="document.getElementById('serv-radio').checked='checked'">
<a class="clicked" href="#servicios">
Servicios
</a>
</label>
</li>
<li>
<label for="gale-radio" class="magic-label gale" onclick="document.getElementById('gale-radio').checked='checked'">
<a class="clicked" href="#galeria" >
Galeria
</a>
</label>
</li>
<li>
<label for="cont-radio" class="magic-label cont" onclick="document.getElementById('cont-radio').checked='checked'">
<a class="clicked" href="#contacto">
Contacta nos
</a>
</label>
</li>
</ul>
</nav>
</header>
<section id="main">
<article class="panel" id="servicios">
<h1> Nuestros Servicios</h1>
</article>
<article class="panel" id="galeria">
<h1> Mustra de nuestro trabajos</h1>
</article>
<article class="panel" id="contacto">
<h1> Pongamonos en contacto</h1>
</article>
</section>
:
はここで削除されたすべてのラジオボタンとラベルを使用してセットアップです。あなたの答えはjQueryを使用しています。これはさらにオーバーヘッドになってからjavascriptになります。また、この回答は機能しません。リンクをクリックすると、色は赤に変わりません。 – Jpsh