2016-04-28 5 views
0

Okay, ich komme aus Holland, also entschuldige mein schlechtes Englisch. Ich werde versuchen, so genau wie möglich sein ....Howto machen ein div erscheinen, wenn Sie auf Link in der Navigation klicken

Tor

eine Navigationsleiste hat, und wenn sie auf einem Einzelteil geklickt wird es ein div mit Inhalt darin zeigen.

in Ordnung, zu Testzwecken habe ich eine einfache jsfiddle gemacht haben https://jsfiddle.net/hjuekLhq/

[HTML]

<nav class="navigation"> 
     <ul> 
     <li class="item1"><a href="#content1">content1</a></li> 
     <li class="item2"><a href="#content2">content2</a></li> 
     <li class="item3"><a href="#content3">content3</a></li> 
     </ul> 
    </nav> 
<div id="content1">content 1 text</div> 
<div id="content2">content 2 text</div> 
<div id="content3">content 3 text</div> 

[CSS]

.navigation {background:blue;width:100%;} 
.navigation li {display:inline-block;width: 5em;background:white;color:black;padding:1em;} 
.navigation a {text-decoration:none;} 

#content1 {background:green;color:white;padding:5em;} 
#content2 {background:orange;color:white;padding:5em;} 
#content3 {background:black;color:white;padding:5em;} 

#content1 {display:block;} 
#content2 {display:none;} 
#content3 {display:none;} 

.item1:hover #content1 {display:block;} 
.item1:hover #content2 {display:none;} 
.item1:hover #content3 {display:none;} 

.item2:hover #content1 {display:none;} 
.item2:hover #content2 {display:block;} 
.item2:hover #content3 {display:none;} 

.item3:hover #content1 {display:none;} 
.item3:hover #content2 {display:none;} 
.item3:hover #content3 {display:block;} 

Die obige Geige ist das, was ich will, und funktioniert nicht ...

Folgendes Geige ist ein funktionierendes Beispiel, aber es zeigt nicht die gewünschte Navbar.

https://jsfiddle.net/o883h71u/

[HTML]

<li class="item1"><a href="#content1">content1</a></li> 
    <li class="item2"><a href="#content2">content2</a></li> 
    <li class="item3"><a href="#content3">content3</a></li> 

<div id="content1">content 1 text</div> 
<div id="content2">content 2 text</div> 
<div id="content3">content 3 text</div> 

[CSS]

.item1, .item2, .item3 {display:inline-block;width: 5em;background:white;color:black;padding:1em;} 
.item1 a, .item2 a, .item3 a {text-decoration:none;} 

#content1 {background:green;color:white;padding:5em;} 
#content2 {background:orange;color:white;padding:5em;} 
#content3 {background:black;color:white;padding:5em;} 

#content1 {display:block;} 
#content2 {display:none;} 
#content3 {display:none;} 

.item1:hover ~#content1 {display:block;} 
.item1:hover ~#content2 {display:none;} 
.item1:hover ~#content3 {display:none;} 

.item2:hover ~#content1 {display:none;} 
.item2:hover ~#content2 {display:block;} 
.item2:hover ~#content3 {display:none;} 

.item3:hover ~#content1 {display:none;} 
.item3:hover ~#content2 {display:none;} 
.item3:hover ~#content3 {display:block;} 

Ich hoffe, dass ich klar genug auf das, was ich hier erreichen wollen. Wenn ein Menüeintrag angeklickt wird, sollte ein div erscheinen und die anderen divs sollten verschwinden.

Jede Hilfe würde sehr geschätzt werden! Oh ja, und wenn möglich nur CSS! kein Javascript ...

Danke!

Antwort

0

Kann dies Ihr Problem zu lösen helfen könnte ...

versuchen, auf den Registerkarten des Menüs klicken

[codepan link here] 

http://codepen.io/amiteshchauhan/pen/oxaBPG

+0

Hmmm, ja das scheint zu funktionieren, gib mir etwas Zeit, um es in meine Website zu stellen. Ich werde zurückkommen und sagen, ob ich danach gesucht habe! – Enumo

+0

Nein, das ist es nicht, der erste Inhalt muss sichtbar sein und verschwinden, wenn Punkt 2 oder 3 angeklickt wird .... – Enumo

+1

Aber mit ein wenig Testen und Herumspielen fand ich eine praktikable Lösung: siehe http: // www. oene-jacq.nl/sdouma-html/test.html für auf, wie ich es tat .... Ich benutzte im Grunde @Amites Chauhan sollution, und wird die Seite in der nav Verbindung mit # content1 in ihr so ​​hart-verknüpfen wird erscheinen .... Danke! – Enumo

0

Wir müssen js für jede Ereignisaktion aufrufen. und unten ist der Code zum Anzeigen der Registerkarte.

$('.navigationcontainer').addClass('hide'); 
 
$('.navigationcontainer').eq(0).removeClass('hide'); 
 
$('.navigation li').eq(0).find('a').addClass('active'); 
 
$('.navigation a').click(function(e){ 
 
    e.preventDefault() 
 
    $('.navigation a').removeClass('active'); 
 
    $(this).addClass('active'); 
 
    var id = $(this).attr('href'); 
 
    $(id).removeClass('hide').siblings('div').addClass('hide'); 
 
})
.navigation {background:blue;width:100%;} 
 
.navigation li {display:inline-block;width: 5em;background:white;color:black;padding:1em;} 
 
.navigation a {text-decoration:none;} 
 
.navigation a.active{background:red;} 
 

 
#content1 {background:green;color:white;padding:5em;} 
 
#content2 {background:orange;color:white;padding:5em;} 
 
#content3 {background:black;color:white;padding:5em;} 
 

 
.navigationcontainer.hide{display:none;} 
 

 
.item1:hover #content1 {display:block;} 
 
.item1:hover #content2 {display:none;} 
 
.item1:hover #content3 {display:none;} 
 

 
.item2:hover #content1 {display:none;} 
 
.item2:hover #content2 {display:block;} 
 
.item2:hover #content3 {display:none;} 
 

 
.item3:hover #content1 {display:none;} 
 
.item3:hover #content2 {display:none;} 
 
.item3:hover #content3 {display:block;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav class="navigation"> 
 
     <ul> 
 
     <li class="item1"><a href="#content1">content1</a></li> 
 
     <li class="item2"><a href="#content2">content2</a></li> 
 
     <li class="item3"><a href="#content3">content3</a></li> 
 
     </ul> 
 
    </nav> 
 
<div class="navigationwrapper"> 
 
<div id="content1" class="navigationcontainer">content 1 text</div> 
 
<div id="content2" class="navigationcontainer">content 2 text</div> 
 
<div id="content3" class="navigationcontainer">content 3 text</div> 
 
    </div>

+0

JS nicht markiert ist in der Frage –

+0

Das ist funktioniert auch so, wie ich es möchte, aber es benutzt java und wenn möglich würde ich kein java benutzen ..... Danke trotzdem für die Antwort. Ich könnte es benutzen, wenn es an Java nicht geht! – Enumo

+0

es funktioniert irgendwie nicht auf meiner Website ... In jsfiddle muss ich die eine Zeile vor dem Nav-Zeug und da funktioniert es, aber in meinem Browser funktioniert es nicht ... – Enumo

0

Hier ist der Code mit CSS.

.navigation {background:blue;width:100%;} 
 
.navigation li {display:inline-block;width: 5em;background:white;color:black;padding:1em;} 
 
.navigation a {text-decoration:none;} 
 
.navigation a.active{background:red;} 
 

 
#content1 {background:green;color:white;padding:5em;} 
 
#content2 {background:orange;color:white;padding:5em;} 
 
#content3 {background:black;color:white;padding:5em;} 
 

 
.navigationcontainer{display:none;} 
 
.inputelement:checked ~ .navigationwrapper .navigationcontainer{display:none;} 
 

 

 
.one:checked ~ .navigationwrapper #content1{display:block;} 
 
.two:checked ~ .navigationwrapper #content2{display:block;} 
 
.three:checked ~ .navigationwrapper #content3{display:block;} 
 

 
span{display:inline-block; background:yellow; width:100px; height:50px} 
 
.inputelement{position:absolute;width:100px; height:50px; opacity:0;} 
 
.inputelement:checked + span{background:red;}
<input type="radio" class="inputelement one" name="menu" checked /> 
 
<span>content1</span> 
 
<input type="radio" class="inputelement two" name="menu" /> 
 
<span>content2</span> 
 
<input type="radio" class="inputelement three" name="menu" /> 
 
<span>content3</span> 
 
<div class="navigationwrapper"> 
 
<div id="content1" class="navigationcontainer">content 1 text</div> 
 
<div id="content2" class="navigationcontainer">content 2 text</div> 
 
<div id="content3" class="navigationcontainer">content 3 text</div> 
 
    </div>

+0

Dies ist in der Tat eine gute Möglichkeit, zu erreichen, was ich will, aber ich möchte dies in einem Wordpress-Thema verwenden, das ich erstelle Und wordpress benutzt das nav, ul li-Zeug. Irgendeine Weise, dieses mit dem nav, ul, li-Zeug zu gebrauchen? Und ich vermisse immer noch meine Menüleiste .... – Enumo

+0

Ich fühle es nicht möglich, weil wir nicht dazu in der Lage sind navigiere zum Eltern-Kind mit css selector –

+0

ok danke für die tolle Idee! Es könnte nützlich sein mit meiner Tabbed Menüleiste für einen bestimmten Menüpunkt, den ich gerade erstelle – Enumo

Verwandte Themen