javascript - Safari 上的 CSS 转换与其他浏览器相比起伏不定

标签 javascript css safari onclick transitions

我真的很难尝试在 Safari 中创建平滑的 CSS 过渡。我试图通过使用 JavaScript onclick 事件更改它们的高度来隐藏/显示 div。在 Chrome、Firefox 和 Edge 中,由此产生的过渡非常流畅。然而,对于 Safari,它看起来很糟糕,渲染时必须在 15 fps 左右。

基本的 JSFiddle 在这里:https://jsfiddle.net/q5a9b62s/6/

我正在处理的网站在这里:http://www.allinimages.ch/

谢谢。

最佳答案

您可以尝试使用 JavaScript 将 className 添加到您的 div 中,如下所示:

    function grow() {
      var element = document.getElementById("boxid");
      if (!element.className) {
        element.className = 'tall';
      } else {
        element.className = '';
      }
    };

我添加了 className 的无效化以启用动画切换。

然后,让 CSS 处理为您完成所有转换:

    #boxid {
      background-color: red;
      width: 50px;
      height: 50px;
      position: relative;
      -webkit-transition: height 0.3s ease; 
        transition: height 0.3s ease;
    }

    #boxid.tall {
      height: 500px;
      -webkit-transition: height 0.3s ease; 
      transition: height 0.3s ease;
      transform: translate3d(100) /* this property ensures GPU processing cross-browser */
    }

Codepen 示例是 here .

有关平滑 CSS 过渡的精彩文章是 here .

跨浏览器使用 translate3d 的一些问题已记录在案 here .

关于javascript - Safari 上的 CSS 转换与其他浏览器相比起伏不定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40289461/

相关文章:

javascript - 传递函数名作为参数执行

html - 使用 phpmailer 发送整个 html 页面

javascript - goBack 按钮在 Angular2 的 Safari 中不起作用

javascript - 在 JavaScript 函数中引用表格中的左侧单元格

javascript - 使用 prevUntil jquery 查找 pre html 元素

javascript - 如何使用 JavaScript 将 HTML 段落拆分为文本行

html - Mobile Safari 中的 Z-Index 问题

php - Safari:无法识别的内容安全策略指令 'frame-ancestors'

javascript - 如何使 window.innerHeight 在移动设备上缩放时起作用?

javascript - 如何隐藏div html?