Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
onclick.. divy zasłania diva itp.
#1
Witam

Mam taki problem:
jak klikam w button1 to pojawia mi się pod spodem div zielony, jak klikam button1
to kolejny div czerwony się pojawia w tym miejscu i analogicznie z buttonem3 (divy się zasłaniają nawzajem).
Jednak gdy znów klikam w button1 to nie przeskakuje mi na zielony div tylko ciągle jest ten div który kliknąłem ostatni. Tak jakbym mógł się poruszać do przodu ale nie mógłbym się cofnąć (w przykładzie lepiej to widać).

Bardzo ale to bardzo proszę o pomoc.

Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="css/buttons.css" rel="stylesheet" type="text/css" />
<script language="JavaScript">
    function setVisibility(id, visibility)
    {
        document.getElementById(id).style.display = visibility;
    }
</script>
</head>
<body >
<div id="buttons">
    <input type=button name=type class='button' value='button_1' onclick="setVisibility('box-1', 'inline');";>
    <input type=button name=type class='button' value='button_2' onclick="setVisibility('box-2', 'inline');";>
    <input type=button name=type class='button' value='button_3' onclick="setVisibility('box-3', 'inline');";>
</div>

<div id="boxs">
    <div id="box-1">Message Box</div>
    <div id="box-2">Message Box</div>
    <div id="box-3">Message Box</div>
</div>

</body>
</html>

CSS
Kod:
#buttons{
height: 30px;
}
#boxs{
margin-top: 20px;
}
#box-1{
background-color: red;
color: black;
display: none;
height: 80px;
position: absolute;
width: 400px;
}
#box-2{
background-color: green;
color: black;
display: none;
height: 80px;
position: absolute;
width: 400px;
}
#box-3{
background-color: grey;
color: black;
display: none;
height: 80px;
position: absolute;
width: 400px;
}
Odpowiedz
#2
Ja bym powiedział, że pewnie chodzi o z-index, ale nie powiem by nie było, że się wymądrzam.
Odpowiedz
#3
Menu z przycisków 1 , 2 , 3 , 4 klikając na nie wyświetla mi się pod spodem treść.
Jak klikam w menu od 1, 2, 3, 4 to treść pod spodem się zmienia.
Jednak gdy dojdę już do 4 przycisku i kliknę w 1 to nie pojawia mi się treść "ustawiona"
dla 1 tylko ciągle widać treść dla 4.
Wiem że troszkę to zawiłe dlatego wstawiłem kod bo tam lepiej widać.
Odpowiedz
#4
Powiedziałem wcześniej - z-index. 4,3,2 przysłania 1.
Odpowiedz
#5
(13-07-2012, 15:21)Kartofelek napisał(a): Powiedziałem wcześniej - z-index. 4,3,2 przysłania 1.
Ok próbowałem ale jakoś nie wychodzi, może mi napiszesz jak ustawić z-index żeby zadziałało.
Odpowiedz
#6
elementy muszą mieć jakąś pozycję. Relatywną lub absolutną

{.....position:relative; z-index:.....}

Potem podczas kliknięcia wszystkim divom ustawiasz z-index niski, a wybranemu wysoki.
Odpowiedz
#7
tyle że ten sposób (który napisałem na górze) działa tylko w stronę od butona 1->2-> 3 a nie od 3->2-> 1. Myślałem że uda się go łatwo poprawić. Więc chyba skorzystam z rozwiązania Kornella.

Dzięki chłopaki za pomoc.
Odpowiedz
#8
To z z-index działa w każdą stronę. Właśnie w taki sposób tworzone jest 99% sliderów więc... No ale to zwyczajna logika Smile. Skoro jakiś div jest nad, a inny pod, to co byś nie robił z tym pod, to ten nad go przykryje.
Dlatego musisz mu ustawić z-index
Kod:
function $(id) {
return document.getElementById(id);
}

var i = 4;
function setVisibility(id) {
     $(id).style.zIndex = ++i;
}

Można też inaczej:

Kod:
function $(id) {
return document.getElementById(id);
}

var i = 4;
function setVisibility(id) {
     $('blok-1').style.display = 'none';
     $('blok-2').style.display = 'none';
     $('blok-3').style.display = 'none';
     $(id).style.display = 'block';
}

Reszty nie chce mi się komentować, jestem przemęczony. No ale naście błędów jest.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Divy.. Utilaft 4 3,611 21-02-2013, 02:27
Ostatni post: kornell
  [css] div obok diva; hover nana 2 2,857 11-12-2012, 23:56
Ostatni post: nana
  [css] Div obok diva Mtk 7 6,062 07-10-2012, 01:54
Ostatni post: Mtk
  [CSS] Problem z pozycjonowaniem diva. Extragracz 5 3,317 31-08-2012, 16:06
Ostatni post: Extragracz
  [css] pytanie o divy grzesiek77 15 6,933 28-08-2012, 02:44
Ostatni post: kornell

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl