jquery - 如何用 jQuery 制作变换比例动画?

标签 jquery

我正在尝试实现和“打开窗口”动画,我尝试了以下操作:

import $ from 'jquery'

export const fade = {
  css: false,
  enter: function (el, done) {
    $(el)
      .css('opacity', 0)
      .css({ transform: 'scale(0.9,0.9)' })
      .animate({
        opacity: 1,
        transform: 'scale(1,1)'
      }, 1000, done)
  },
  enterCancelled: function (el) {
    $(el).stop()
  },
  leave: function (el, done) {
    $(el).animate({
      opacity: 0,
      transform: 'scale(0.9,0.9)'
    }, 1000, done)
  },
  leaveCancelled: function (el) {
    $(el).stop()
  }
}

但只有 opacity 动画有效(它从 0 到 1)。并且仅应用 transform: 'scale(0.9,0.9)'

注意:由于我使用的是 Chrome,所以我也尝试过使用 '-webkit-transform',但它也不起作用。

transform 不起作用的原因是什么?

最佳答案

当然,CSS 过渡比 jQuery 动画要好得多。

这是一个如何使用 jQuery 进行转换动画的通用示例。

技巧是设置不受影响的 css 属性(如 border-spacing)并对其进行“动画”处理。然后,您可以使用step回调来创建您自己的动画效果。

$('button').click(function() {
  $('div').css('borderSpacing', 1).animate(
    {
      borderSpacing: 1.3
    },
    {
    step: function(now,fx) {
      $(this).css('transform','scale('+now+')');  
    },
    duration:'slow'
  });
});
div {
  width:150px;
  height:150px;
  background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
<button>Animate</button>

关于jquery - 如何用 jQuery 制作变换比例动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36243887/

相关文章:

javascript - 通过控制台关闭 Bootstrap 模式

javascript - AngularJS如何将元素附加到特定元素

javascript - 触发一个 :hover event by hovering on an other

php - 用于在网页中解析的大型数据集

jquery - 配置单级下拉菜单

javascript - 更改其父元素 <td> 的背景颜色时,停止鼠标悬停在 <a> 元素上的闪烁?查询/JS

jquery - 随机页面不会加载任何 css 文件然后自动修复?

javascript - 如何实现粘性表头和几列(每列都有复选框或输入)

javascript - 如何隐藏 Div 然后一键访问 Url

javascript - IE 全局变量 arrayName.className 为 null