简体   繁体   中英

toggle function making all other divs disappear

So I have many divs (planets). I'd like to make them disappear by clicking on them. So far I have earth and sun only. On my test run, when I click on sun, and earth also disappears. What is the proper code so that not all planets will disappear just by one click.

HTML:

<div class="planets" id="sun"><div>
<div class-"planets" id="earth"></div>

CSS:

#sun {
    background-image: -webkit-gradient(linear, 100% 45%, 0% 97%, from(#FEA901),     to(#FE4801));
    background-image: -webkit-linear-gradient(top, #FEA901, #FE4801); 
    background-image:    -moz-linear-gradient(top, #FEA901, #FE4801);
    background-image:     -ms-linear-gradient(top, #FEA901, #FE4801);
    background-image:      -o-linear-gradient(top, #FEA901, #FE4801);
    position:relative;
    border:3px solid orange;
    height:150px;
    width:150px;
    position: absolute;
    left: 50%;
    top: 50%; 
    margin-left: -150px;
    margin-top: -150px;
    border-radius:50%;
    -webkit-box-shadow: 0px 0px 30px 5px rgba(255, 255, 190, .75);
    -moz-box-shadow: 0px 0px 30px 5px rgba(255, 255, 190, .75);
    box-shadow: 0px 0px 250px 100px rgba(240, 176, 12, .75);
}

#earth {
    position:absolute;
    top:440px;
    right:700px;
    height:100px;
    width:100px;
    border-radius:50%;
    border:1px solid white;
    background-image: -webkit-gradient(linear, 100% 45%, 0% 97%, from(#068143), t(#FE4801));
    background-image: -webkit-linear-gradient(top, #2215DF, #068143); 
    background-image:    -moz-linear-gradient(top, #FEA901, #068143);
    background-image:     -ms-linear-gradient(top, #FEA901, #068143);
    background-image:      -o-linear-gradient(top, #FEA901, #068143);
    -webkit-box-shadow: 0px 0px 30px 5px rgba(131, 180, 226, .75);
    -moz-box-shadow: 0px 0px 30px 5px rgba(131, 180, 226, .75);
    box-shadow: 0px 0px 50px 10px rgba(131, 180, 226, .75);
}

JS:

$(document).ready(function() {
    $("html").mousemove(function(e){
        $('.follow').css({'top': e.clientY - 100, 'left': e.clientX - 60});
    }); 
    $('.planets').click(function() {
        $('#sun').toggle(1000);
    });
});
$('.planets').click(function() {
    $(this).hide();
}

you could also do

$('.planets').click(function() {
    $(this).toggle();
}

but it'd be pointless since you can't click on it to make it reappear, after it is already hidden

You had several typos in your code. You forgot the </div> to the sun, which made it not parse correctly and the earth wouldn't show up. Also you had - instead of = for the class. Here is the code for you fixed:

jsFiddle

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM