使用 JS 转换属性定位元素(CSS get 被 JS 覆盖)

Positioning of element with JS transform properties (CSS get's overwritten by JS)

我正在尝试将两个图像放在彼此的顶部,并让其中一个在滚动时旋转而另一个不旋转 - 这有效,除了我无法在我的元素中定位和缩放我的元素CSS。一旦我开始滚动,带有 JS 的图像就会跳到角落,而另一个则保持原样。我相信这是因为我的 JS 覆盖了我的 CSS 属性,但是有什么办法可以解决这个问题吗?我可以在维护我的 JS 的同时定位我的两个元素吗?

var elem = document.getElementById("rotatelogo");
window.addEventListener('scroll', function() {
    var value = window.scrollY * 0.25;
    elem.style.transform = `translatex(-50%) translatey(-50%) rotate(${value}deg)`; 
});
body {
  height: 200vh;
  background: darkblue;
}

.guide {
  width:150px;
  height:150px;
  margin-top:50px;
  margin-bottom:-300px;
  margin-left:50px;
}
<div class="guide" style="position:relative">
    <img src="http://jakobnatorp.com/wp-content/uploads/2021/10/ARROW.png" style="position:fixed;"/>
    <img class="portfolio" id="rotatelogo" src="http://jakobnatorp.com/wp-content/uploads/2021/10/SELECTED-WORK-BEIGE.png" style="position:fixed"/>
</div>

我不确定您想要通过使用translatex(-50%) translatey(-50%) 实现什么,但这会导致图像中心位于父元素的左上角。 如果你只是使用 elem.style.transform = `rotate(${value}deg)`; 它会原地旋转。

从您的代码中删除翻译。

var elem = document.getElementById("rotatelogo");
window.addEventListener('scroll', function() {
    var value = window.scrollY * 0.25;
    elem.style.transform = `rotate(${value}deg)`; 
});
body {
  height: 200vh;
  background: darkblue;
}

.guide {
  width:150px;
  height:150px;
  margin-top:50px;
  margin-bottom:-300px;
  margin-left:50px;
}
<div class="guide" style="position:relative">
    <img src="http://jakobnatorp.com/wp-content/uploads/2021/10/ARROW.png" style="position:fixed;"/>
    <img class="portfolio" id="rotatelogo" src="http://jakobnatorp.com/wp-content/uploads/2021/10/SELECTED-WORK-BEIGE.png" style="position:fixed"/>
</div>