在记忆游戏中点击特定卡片点击

时间:2016-10-26 10:22:45

标签: flip playing-cards

所以我正在开发一款记忆游戏,而且我可以很好地翻转卡片,但每当我点击翻转它时,它就会翻转它们。我宁愿使用一种方法,如果可能的话,不会给每张卡片一张ID ...请帮忙。

HTML    

    <section class="cardsContainer">
        <div class="card" onclick="flip()">
            <div class="front"><img src="../images/backsideBlue.png"></div>
            <div class="back"><img src="../images/cookie.JPG"></div>
        </div>
    </section>
    <section class="cardsContainer">
        <div class="card" onclick="flip()">
            <div class="front"><img src="../images/backsideBlue.png"></div>
            <div class="back"><img src="../images/cookie.JPG"></div>
        </div>
    </section>
    <section class="cardsContainer">
        <div class="card" onclick="flip()">
            <div class="front"><img src="../images/backsideBlue.png"></div>
            <div class="back"><img src="../images/cookie.JPG"></div>
        </div>
    </section>
    <section class="cardsContainer">
        <div class="card" onclick="flip()">
            <div class="front"><img src="../images/backsideBlue.png"></div>
            <div class="back"><img src="../images/cookie.JPG"></div>
        </div>
    </section>
    <section class="cardsContainer">
        <div class="card" onclick="flip()">
            <div class="front"><img src="../images/backsideBlue.png"></div>
            <div class="back"><img src="../images/cookie.JPG"></div>
        </div>
    </section>
</div>

CSS

.cardsContainer {
    width: 230px;
    height: 320px;
    position: relative;
    border: 1px dashed red;
    -webkit-perspective: 800px;
    -moz-perspective: 800px;
    -o-perspective: 800px;
    perspective: 800px;
    margin: 20px 10px 10px 10px;
    display: inline-block; } .card {
    width: 100%;
    height: 100%;
    position: absolute;
    -webkit-transition: -webkit-transform 1s;
    -moz-transition: -moz-transform 1s;
    -o-transition: -o-transform 1s;
    transition: transform 1s;
    -webkit-transform-style: preserve-3d;
    -moz-transform-style: preserve-3d;
    -o-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-transform-origin: 50% 50%; } .card div {
    display: block;
    height: 100%;
    width: 100%;
    line-height: 260px;
    color: white;
    text-align: center;
    font-weight: bold;
    font-size: 140px;
    position: absolute;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden; } .card .front { } .card .back {
    -webkit-transform: rotateY( 180deg );
    -moz-transform: rotateY( 180deg );
    -o-transform: rotateY( 180deg );
    transform: rotateY( 180deg ); } .card.flipped {
    -webkit-transform: rotateY( 180deg );
    -moz-transform: rotateY( 180deg );
    -o-transform: rotateY( 180deg );
    transform: rotateY( 180deg ); }

JS

function flip() {
    $('.card').toggleClass('flipped');
}

1 个答案:

答案 0 :(得分:0)

您展示的功能不是JavaScript,而是JQuery。在JQuery中,$('.card')表示“具有类'卡'的所有元素”。您需要做的是将一个onclick()函数附加到每个只翻转自身的卡对象上。

尝试将HTML更改为onclick="flip(this)",并将flip函数更改为仅更改传递给它的元素:

function flip(e) { e.toggleClass('flipped'); }