css - 翻转动画在 Safari 上不起作用

标签 css twitter-bootstrap-3 css-animations mobile-safari

我的网站上有一个翻转动画。它适用于 PC 和 Android 上的所有浏览器,但不适用于 safari。它会翻转,你会看到“背面”卡片的闪光,然后它消失,你只会得到一个白色方 block 。我想我设置了 -webkit- 就像它应该设置的那样,但由于某种原因它不起作用。有人有什么想法吗?

HTML:

<div class="card">
    <div class="face front hover">
        <img src="images/pawprints_edit.png" width="300" height="180" alt="sign up for al-van newsletter" id="news-img" class="d-inline-block col-md-12 img-fluid my-5 pt-2" />
        <p id="thanks" class="text-center"></p>
    </div>
    <div class="face back">
        <form name="mailForm" class="mail-form" autocomplete="on" novalidate>
            <div class="form-group mb-0 px-2">
                <label for="name">Name:</label>
                <input type="text" class="form-control form-control-sm" id="name" placeholder="John Doe">
            </div>
            <div class="form-group mb-0 px-2">
                <label for="email">Email Address:</label>
                <input type="text" class="form-control form-control-sm" id="email" placeholder="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="473e28323529262a220723282a262e296924282a" rel="noreferrer noopener nofollow">[email protected]</a>">
            </div>
            <div class="form-group mb-0 px-2">
                <label for="message">Please type your message:</label>
                <textarea class="form-control form-control-sm" id="message" cols="30" rows="4"></textarea>
                <input type="button" id="submit" value="Submit">
                <input type="button" id="cancel" value="Cancel">
                <p id="errorP" class="text-center"></p>
            </div>
        </form>
    </div>
</div>

CSS:

/* form animation */

.scene {
    width: 100%;
    height: 300px!important;
    perspective: 1000px;
    -webkit-perspective: 1000px;
    border: none;
}

.card {
    width: 100%;
    height: 100%;
    position: relative;
    -webkit-transition: -webkit-transform 1s;
    transition: transform 1s;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    border: none;
}

.face {
    position: absolute;
    height: 100%;
    width: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.front {
    background: #98b98a;;
    -webkit-z-index: -1;
    z-index: -1
}

.front.hover {
    background: #98b98a;
    -webkit-z-index: 2;
    z-index: 2;
}

.back {
    background: #4c87a9;
    -webkit-transform: rotateY(180deg);
    transform: rotateY(180deg);
    -webkit-z-index: 1;
    z-index: 1;
}

.back [type=text]:hover {
    cursor: text!important;
}

.card.is-flipped {
    -webkit-transform: rotateY(180deg);
    transform: rotateY(180deg);
}

.hover:hover {
    cursor: pointer;
}

/* End animation */

和JS:

/* flip animation script */

function flip() 
{
    'use strict';
    console.log("Flip is being triggered");
    var card = document.querySelector(".card");
    var face = document.querySelector(".front");
    var name = document.getElementById("name");
    var email = document.getElementById("email");
    var errorP = document.getElementById("errorP");
    if(card.removeEventListener)
        {card.removeEventListener("click", flip, false);}
    else if(card.detachEvent)
        {card.detachEvent("onclick", flip);}
    card.classList.toggle("is-flipped");
    face.classList.toggle("hover");
    name.style.background = "#fff";
    email.style.background = "#fff";
    errorP.style.display = "none";
}

/* Function to flip the card back over when canceled */

function cancelFlip()
{
    'use strict';
    console.log("Cancel has been activated");
    var card = document.querySelector(".card");
    var face = document.querySelector(".front");
    card.classList.toggle("is-flipped");
    face.classList.toggle("hover");
    setTimeout(function(){if(card.addEventListener){card.addEventListener("click",flip,false);}else if(card.attachEvent){card.attachEvent("onclick",flip);}console.log("setTimeout was triggered");}, 500);
}

我正在使用 Boostrap 3 框架。 JS 是自定义的,CSS 取自在线教程。该网站的链接是:http://www.al-van.org/jake我正在 Windows 平台上进行开发,没有 iPhone 来测试,所以当我进行更改时,我让我的继父在他的 iPhone 上检查它。到目前为止,还没有任何效果。

更新:似乎表单就在那里,我可以单击内容并输入文本,但实际上您看不到任何内容。它看起来像一个白色的方 block ,什么也看不见。我将背面可见性从 .face 移至每个 .front 和 .back,看看这是否会产生影响。好像没有。

最佳答案

我发现了这个问题。似乎 .card 类有一个默认的背景颜色,它使整个表单变成白色,翻转时会洗掉它的所有组件。当我删除这个默认背景颜色并使其透明时。问题已解决。

关于css - 翻转动画在 Safari 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51111097/

相关文章:

html - pdf 中的 CSS 网格/flex

html - Bootstrap .row margin-left : -15px - why is it outdented (from the docs)

内联 block 内的 css 动画

javascript - 如何替换 CSS3 过渡

javascript - 使用子 div 清空和重新填充 div

html - 如何将两个图像对齐到彼此之上

javascript - 将 getComputedStyle 与边框框一起使用应返回无边框和填充的高度

twitter-bootstrap-3 - 使用 Bootstrap 3 的容器流体和侧边填充

css - 在 Bootstrap 3.1 中使网格更快地折叠/堆叠

css - 使导航栏从顶部滑入 View