【问题标题】:How to rotate individual SVG elements with jQuery/Javascript?如何使用 jQuery/Javascript 旋转单个 SVG 元素?
【发布时间】:2015-08-25 22:07:07
【问题描述】:

我有一个带有重复矩形形状的 SVG。在滚动时,每个矩形都应单独旋转。 我遇到的问题是整个 SVG 块旋转,而不是单独旋转。

是否可以针对脚本将每个矩形视为单独的元素进行旋转?

这是我的:JSFiddle

这是我在某处找到的旋转解决方案,但它会影响整个 SVG:

$(function() {

  var sdegree = 0;

  $(window).scroll(function() {

  sdegree ++ ;
  sdegree = sdegree + 2 ;
  var srotate = "rotate(" + sdegree + "deg)";
  $("rect").css({"-moz-transform" : srotate, "-webkit-transform" : srotate});
  });

});

【问题讨论】:

标签: javascript jquery html css svg


【解决方案1】:

矩形都围绕页面的原点(左上角)旋转。如果您希望它们围绕自己的中心旋转,则需要在 CSS 规则中包含 transform-origin

$(function() {

  var sdegree = 0;

  $(window).scroll(function() {
    sdegree ++ ;
    sdegree = sdegree + 2 ;
    var srotate = "rotate(" + sdegree + "deg)";
    $("rect").css({
      "-webkit-transform" : srotate,
      "transform" : srotate,
      "-webkit-transform-origin" : "50% 50%",
      "transform-origin" : "50% 50%"
    });
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<svg width="400" height="1900">
  <rect x="100" y="100" width="200" height="200" fill="red"/>
  <rect x="100" y="400" width="200" height="200" fill="orange"/>
  <rect x="100" y="700" width="200" height="200" fill="yellow"/>
  <rect x="100" y="1000" width="200" height="200" fill="green"/>
  <rect x="100" y="1300" width="200" height="200" fill="blue"/>
  <rect x="100" y="1600" width="200" height="200" fill="violet"/>
</svg>

【讨论】:

    猜你喜欢
    • 2020-08-24
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2014-04-25
    • 2015-11-13
    相关资源
    最近更新 更多