繁体   English   中英

CSS3转换不起作用

[英]CSS3 transformation not working

当用户单击div元素(卡片)时,我尝试旋转div元素。

为此,我使用的是JavaScript,它添加了旋转div的类(使用jQuery)。

问题是,当用户单击DIV(或卡片)时,该div不会旋转

这是我正在使用的代码:

jsFiddle

HTML:

<div id="boxcard" align="center">
            <div id="card1"><img src="http://img6.uploadhouse.com/fileuploads/17699/17699263b01721074bf094aa3bc695aa19c8d573.png" class=""></div>
            <div id="card2"><img src="http://img9.uploadhouse.com/fileuploads/17699/176992615db99bb0fd652a2e6041388b2839a634.png" class=""></div>
            <div id="card3"><img src="http://icons.iconarchive.com/icons/reclusekc/kulo/96/Skull-1-icon.png"></div>

CSS:

#boxcard {
    z-index: 1;
    display: table;
        margin: 0px auto;
    width: auto;
}

#boxcard div{
    float: left;
    width: 100;
    height: 120;
    margin: 5px;
    padding: 5px;
    border: 4px solid #EE872A;
    cursor: pointer;
    border-radius: 10px;
    box-shadow: 0 1px 5px rgba(0,0,0,.5);
  background: #B1B1B1;
    z-index: 2;
}
#boxcard > div:nth-child(6n+1) {
    clear: both;
}
#boxcard div img {
    /*display: none;*/
    border-radius: 10px;
    z-index: 3;
}

#boxcard div img.flip{

  transform: rotateY(180deg);
   display:inline-block;

}

JavaScript:

var ImgOpened;
var BoxOpened;
var CurrentOpened;
$(document.getElementById("card1")).click(OpenCard);
$(document.getElementById("card2")).click(OpenCard);
$(document.getElementById("card3")).click(OpenCard);
function OpenCard() {
        var id = $(this).attr("id");
        var img = document.querySelector("#" + id + " img");
        img.classList.toggle("flip");

        if (ImgOpened == "") {
            BoxOpened = id;
            ImgOpened = $("#" + id + " img").attr("src");
        }
        else {
            CurrentOpened = $("#" + id + " img").attr("src");
            if (ImgOpened != CurrentOpened) {
                setTimeout(function() {
                    document.querySelector("#" + id + " img").classList.toggle("flip");
                    document.querySelector("#" + BoxOpened + " img").classList.toggle("flip");
                    BoxOpened = "";
                    ImgOpened = "";
                }, 400);
            } 
        }
    }

小提琴

#boxcard div img.flip{
transform:rotate(180deg);
-ms-transform:rotate(180deg); /* IE 9 */
-webkit-transform:rotate(180deg);
display:inline-block;
}

Internet Explorer 10和Firefox支持transform属性。

Internet Explorer 9支持-ms-transform属性(仅2D转换)。

Opera,Chrome和Safari支持另一种-webkit-transform属性

我稍微修改了你的代码

#boxcard div img.flip{

  transform: rotate(180deg);
   display:inline-block;

}

演示

演示

您需要添加如下所示的前缀,所有浏览器都不支持css3的所有功能,要获得大多数浏览器的支持,您需要添加前缀。

浏览器前缀的更多信息

#boxcard div img {
    /*display: none;*/
    border-radius: 10px;
    z-index: 3;
    -o-transition-duration:.5s;
    -moz-transition-duration:.5s;
    -webkit-transition-duration:.5s;
    transition-duration:.5s;
}

#boxcard div img.flip{
-o-transform: rotateY(180deg);
    -moz-transform: rotateY(180deg);
    -webkit-transform: rotateY(180deg);
  transform: rotateY(180deg);
   display:inline-block;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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