我有一张图片,然后我将以下样式规则应用于:
.spinner {
position: absolute;
width: 600px;
height: 600px;
-webkit-transform-origin: 50% 50%;
-webkit-animation:spin 14s linear infinite;
animation:spin 14s linear infinite;
}
@-webkit-keyframes spin { 100% {-webkit-transform: rotate(-360deg);} }
@keyframes spin { 100% { -webkit-transform: rotate(-360deg); transform: rotate(-360deg);}}
在我的IDE中,这非常好用。然后我在6个月前向网上发布了一个页面。我加载了页面,它按预期工作。事实上,6个月内所有事情都很好,没有问题或任何事情。几个星期前,我注意到一个奇怪的发展 - 旋转行为发生了变化。我很困惑,因为这个页面,实际上,整个网站都是静态的。主css文件或任何可能干扰我上面发布的样式规则的任何内容都没有更新。
具体而言,改变的是代替在>中心处旋转的图像,图像现在旋转约其原始中心位置。想象行为改变的最简单方法是将其与时钟进行比较。当手旋转时,时钟的中心不会移动。然而,分针和时针都做(即指针指向时间的指针的末端)。这就是我的形象现在正在做的事情。现在,当它不应该在像素空间中移动x和y维度时。它应该旋转到位,保持静止。 x或y应该没有移动。
我对自己说,"这是不可能的,"并且认为问题本身就会像它一样神秘地消失。不幸的是它持续了几个星期,所以我觉得有必要处理它。尽管没有样式规则冲突,但我将!important
添加到我上面为.spinner
类发布的所有样式规则以及@keyframes
范围之外。这没有任何帮助。
现在我开始认为它可能是一个浏览器问题?我使用谷歌浏览器;只有谷歌浏览器,我没有包含任何-moz
,我不需要。我唯一的猜测是浏览器自我更新并开始以不同的方式处理这些动画?
问题:为什么animation:spin
会改变旋转行为?这是其他一些迫在眉睫的问题的症状吗?除了添加!important
?
更新在看似十亿次试验和错误之后,我发现通过设置:
.spinner {
-webkit-transform-origin: 15% 0%;
}
图像像过去一样开始旋转到位。仍然在回答发生了什么......
我检查了图像,看它的尺寸是否有所改变,但事情看起来很正常。
答案 0 :(得分:0)
2021.5 有点晚但可能对某些人有帮助。就我而言,这是因为我删除了:
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
然后抓住了那个。以下所有内容均未改动,css为:
#overlay {
display: none;
align-items: center;
justify-content: center;
height: 100%;
width: 100%;
position: absolute;
z-index: 99999;
}
.myblock {
display: inline-block;
vertical-align: center;
horiz-align: center;
-webkit-animation: spin 4s linear infinite;
-moz-animation: spin 4s linear infinite;
animation: spin 4s linear infinite;
transform-origin: center center;
-moz-transform-origin: center;
width: auto;
height: auto;
}
html:
<body>
<div id="overlay">
<div class="myblock" style="background-color: transparent; background-blend-mode: unset">
<img src="/images/corona.png" width="150px" height="150px" style="background-blend-mode: unset"
alt="this slowpoke moves"/>
</div>
</div>
....//other divs
</div>
</body>
js部分:
function spinIt(gironPrm) {
if (gironPrm === true)
$("#overlay").css('display', 'flex')
else
$("#overlay").css('display', 'none')
}
我不知道不关心它的科学,也没有时间弄清楚为什么它会发生在我身上, 但它就是这样