Safari -webkit-transition-property :动画缩放和/或背景大小

发布于 2024-10-21 05:54:12 字数 692 浏览 1 评论 0原文

我想用背景图像制作几个 div 的动画。我希望它们移动页面上的位置并变得更大。

我通过 jQuery 通过添加一个类来完成此操作,该类反过来将触发 Webit 的 CSS3 转换。

我是这样开始的:

.myStyle {
    width: 240px;
    height: 240px;
    top: 200px;
    -webkit-background-size: 240px;
    -webkit-transition-property: top, -webkit-background-size, width, height;
    -webkit-transition-duration: 1s;
}

添加该样式时,DIV 会更改宽度和高度,移动到新的顶部位置,但背景大小保持不变。

然后我尝试了这个:

.myStyle {
    top: 200px;
    -webkit-transform: scale(1.5);
    -webkit-transition-property: top, -webkit-transform;
    -webkit-transition-duration: 1s;

}

但是,同样的问题。顶级动画,但规模不高。

我认为(希望)这只是我的语法错误。或者只是无法转换 -webkit 属性?

I'd like to animate a couple of divs with background images. I want them to move position on the page and get larger.

I'm doing this via jQuery by adding a class that, in turn, will trigger Webit's CSS3 transforms.

I started with this:

.myStyle {
    width: 240px;
    height: 240px;
    top: 200px;
    -webkit-background-size: 240px;
    -webkit-transition-property: top, -webkit-background-size, width, height;
    -webkit-transition-duration: 1s;
}

When adding that style, the DIV changes width and height, moves to the new top position, but the background size remains the same.

So then I tried this:

.myStyle {
    top: 200px;
    -webkit-transform: scale(1.5);
    -webkit-transition-property: top, -webkit-transform;
    -webkit-transition-duration: 1s;

}

But, same problem. Top animates, but not the scale.

I think (hope) that this is merely a syntax error on my part. Or is it just not possible to transition -webkit properties?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温馨耳语 2024-10-28 05:54:12

第一个代码不起作用,因为 webkit 无法从一个单位尺寸 (%) 到另一个单位尺寸 (px) 进行动画处理。如果你改变...

.myStyle {
    -webkit-background-size: 150%;
}

它应该有动画,但从 0 到 100%。我认为你的第二个例子中也发生了类似的事情。

我会简化代码并在进行转换之前放置转换声明。如果您删除该类,这允许元素反转转换。另外,如果您要统一缩放,那么 -webkit-transform:scale 就是正确的选择。

#div {
  /*your css*/
  -webkit-transition: all 1s ease;
}

#div.animated {
  -webkit-transform: -webkit-transform: scale(1.5);
}

The first code doesn't work because webkit can't animate from one unit dimension (%) to another (px). If you change...

.myStyle {
    -webkit-background-size: 150%;
}

It should animate, but going from 0 to 100%. A similar thing is happening in your second example, I think.

I'd go about simplifying the code and placing the transition declaration before doing the transformation. This allows the element to reverse the transition if you remove the class. Also, if you are scaling things uniformly then -webkit-transform: scale is the way to go.

#div {
  /*your css*/
  -webkit-transition: all 1s ease;
}

#div.animated {
  -webkit-transform: -webkit-transform: scale(1.5);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文