当前位置: 首页 > 面试题库 >

在SVG组上设置转换原点在Firefox中不起作用

张绍晖
2023-03-14
问题内容

我在使转换原点在Firefox(v.18
+,未测试的其他版本)中工作时遇到问题。Webkit浏览器可以正常工作。我正在尝试将原点设置为组的中心,但到目前为止我没有尝试过。

这是代码:

#test {

  -webkit-transform-origin: 50% 50%;

  transform-origin: center center;

  -webkit-animation: prop 2s infinite;

  animation: prop 2s infinite;

}



@-webkit-keyframes prop {

  0% {

    -webkit-transform: scale(1, 1);

  }

  20% {

    -webkit-transform: scale(1, .8);

  }

  40% {

    -webkit-transform: scale(1, .6);

  }

  50% {

    -webkit-transform: scale(1, .4);

  }

  60% {

    -webkit-transform: scale(1, .2);

  }

  70% {

    -webkit-transform: scale(1, .4);

  }

  80% {

    -webkit-transform: scale(1, .6);

  }

  90% {

    -webkit-transform: scale(1, .8);

  }

  100% {

    -webkit-transform: scale(1, 1);

  }

}



@keyframes prop {

  0% {

    transform: matrix(1, 0, 0, 1, 0, 0);

  }

  20% {

    transform: matrix(1, 0, 0, .8, 0, 0);

  }

  40% {

    transform: matrix(1, 0, 0, .6, 0, 0);

  }

  50% {

    transform: matrix(1, 0, 0, .4, 0, 0);

  }

  60% {

    transform: matrix(1, 0, 0, .2, 0, 0);

  }

  70% {

    transform: matrix(1, 0, 0, .4, 0, 0);

  }

  80% {

    transform: matrix(1, 0, 0, .6, 0, 0);

  }

  90% {

    transform: matrix(1, 0, 0, .8, 0, 0);

  }

  100% {

    transform: html" target="_blank">matrix(1, 0, 0, 1, 0, 0);

  }

}


<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 16 16">

    <g id="test">

        <rect fill="#404040" x="7.062" y="3.625" width="1.875" height="8.75"/>

    </g>

</svg>

问题答案:

我试图使用CSS过渡围绕其中心点旋转一个简单的齿轮svg图形。我和Firefox有同样的问题;转换原点似乎没有任何效果。

解决方案是绘制原始svg形状,以使其中心位于坐标0、0处:

<svg x="0px" y="0px" width="400px" height="400px" viewBox="0 0 400 400">
    <rect id="myObject" x="-50" y="-50" fill="#E52420" width="100" height="100"/>
</svg>

然后在其周围添加一个组并转换为所需的位置:

<svg x="0px" y="0px" width="400px" height="400px" viewBox="0 0 400 400">
    <g transform="translate(150, 100)">
        <rect id="myObject" x="-50" y="-50" fill="#E52420" width="100" height="100"/>
    </g>
</svg>

现在,您可以应用在Firefox中可以使用的css转换(我根据用户操作(js- rotateObject)使用JavaScript将类添加到HTML标记,并使用Minimizr检查浏览器是否可以处理转换和转换(.csstransforms.csstransitions):

#myObject{
    transform: rotate(0deg);
    transition: all 1s linear;
}

.csstransforms.csstransitions.js-rotateObject #myObject{
    transform: rotate(360deg);
}

希望能有所帮助。



 类似资料:
  • 问题内容: 我正在为伪元素设置SVG : 但由于某种原因,它没有显示在Firefox上。我不想使用base64数据URL。在Firefox中根本不可能吗? 问题答案: URL中的#字符被保留以指示片段标识符的开始。 您必须对数据URL内容进行URL编码,这意味着将数据URL中的所有哈希字符转换为%23

  • 问题内容: 将与一起使用时出现错误。 Firefox version:47.0 Selenium:2.53.0 Windows 10 64 bit 是否有人遇到类似问题或任何想法,解决方案是什么?在Chrome上运行正常,但在Firefox上未加载任何URL。 问题答案: 不幸的是,Selenium WebDriver 2.53.0与Firefox 47.0不兼容。处理Firefox浏览器()的W

  • 问题内容: 我正在使用selenium来测试我们的网站。当我构建项目时,有一个例外:- OpenQA.Selenium.WebDriverException:无法在45000毫秒内启动套接字。尝试连接到以下地址:127.0.0.1:7055,问题出在代码上 有人知道如何解决这个问题吗? 问题答案: 与其他浏览器供应商提供给Selenium的其他驱动程序一样, Mozilla也发布了将与浏览器一起运

  • 问题内容: 这是我的xml文档。我只想使用xml签名对userID部分进行签名。我正在使用xpath转换来选择该特定元素。 我正在使用以下代码添加转换: 但是我得到以下内容: 因此,我尝试删除xmlns部分。 但是它在整个文档上签名并给出以下消息: 问题是什么? 编辑 正如@JörnHorstmann所说,消息只是一条日志或类似的东西。现在的问题是,即使在给xpath查询后,整个文档也会被签名,而

  • 我正在指定一个上下文根,如下面的XML所示。但是,当我在Glassfish admin web控制台中手动上传war文件时,它不起作用。如果我通过glassfish的maven插件部署它,它就能工作。Glassfish似乎没有读取文件,而是使用默认名称...我是不是漏掉了什么,或者这是一个错误?我正在使用Glassfish 3.1.2.2构建5。 glassfish-web.xml

  • 昨天我检查了一个突出的产品幻灯片,我在一个网页的首页是不是属性垂直对齐只在火狐,它在IE和Chrome工作正常。 我在搜索信息,很多年前我在FF上发现了很多bug。我尝试了一些我找到的解决方案,但没有一个有效。 在chrome和IE上,div位于窗口的中心,而在firefox中,该功能会向右对齐,使窗口大于100%。 幻灯片基于:http://wordpress.org/extend/plugin