【问题标题】:IOS Safari transition transform not workingIOS Safari转换转换不起作用
【发布时间】:2015-07-19 15:36:42
【问题描述】:

每当我似乎应用一些代码来移动一个 div 时,例如使用最新的 iOS Safari 浏览器,它实际上并没有在两个规则集之间转换。我曾尝试更改为使用百分比值以外的值,但直到今天,当我将transition: transform; 用于任何应用的translate 属性时,我始终无法让它工作。

我使用了正确的前缀并检查了支持,应该没问题。

http://caniuse.com/#search=transition

http://caniuse.com/#search=translate

JSFiddle

$('button').on('click', function() {
    $('.mydiv').toggleClass('added-class');
});
.mydiv {
    display: inline-block;
    width: 100px;
    height: 50px;
    background-color: red;

    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    -webkit-transform: translateY(0);
    transform: translateY(0);
    -moz-transition: transform 0.6s ease-out;
    -o-transition: transform 0.6s ease-out; 
    -webkit-transition: transform 0.6s ease-out;
    transition: transform 0.6s ease-out;
}

.added-class {
    -moz-transform: translateY(100%);
    -ms-transform: translateY(100%);
    -o-transform: translateY(100%);
    -webkit-transform: translateY(100%);
    transform: translateY(100%);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="mydiv"></div>
<button type="button">Toggle class</button>

【问题讨论】:

    标签: css safari css-transitions vendor-prefix


    【解决方案1】:

    旧版本的 iOS Safari 仅支持 transitiontransform 的供应商前缀属性和值,因此您应该使用 -webkit-transition: -webkit-transform 而不是 -webkit-transition: transform

    JSFiddle

    $('button').on('click', function() {
        $('.mydiv').toggleClass('added-class');
    });
    .mydiv {
        display: inline-block;
        width: 100px;
        height: 50px;
        background-color: red;
    
        -webkit-transform: translateY(0);
        -moz-transform: translateY(0);
        -ms-transform: translateY(0);
        -o-transform: translateY(0);
        transform: translateY(0);
    
        -webkit-transition: -webkit-transform 0.6s ease-out;
        -moz-transition: transform 0.6s ease-out;
        -o-transition: transform 0.6s ease-out;
        transition: transform 0.6s ease-out;
    }
    
    .added-class {
        -webkit-transform: translateY(100%);
        -moz-transform: translateY(100%);
        -ms-transform: translateY(100%);
        -o-transform: translateY(100%);
        transform: translateY(100%);
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <div class="mydiv"></div>
    <button type="button">Toggle class</button>

    【讨论】:

    • 似乎可以解决问题,谢谢谢尔盖!现在过渡完美(在 iPhone 6 iOS8 上测试)。
    猜你喜欢
    • 1970-01-01
    • 2020-03-21
    • 2018-07-24
    • 2018-09-18
    • 2014-03-13
    • 1970-01-01
    • 2020-03-26
    • 2017-11-03
    • 2016-08-02
    相关资源
    最近更新 更多