使用JS旋转图像时如何添加边距顶部

Posted

技术标签:

【中文标题】使用JS旋转图像时如何添加边距顶部【英文标题】:How to add a margin top when image is rotating with JS 【发布时间】:2021-06-26 13:11:01 【问题描述】:

我想在图像旋转 90 度时为其顶部添加边距。这就是我旋转图像的方式:

const img = document.querySelector("#mocci-logo")

document.addEventListener("scroll", (e) => 
  if(!window.scrollY) 
    img.style.transform = "rotate(0deg)"
   else 
    img.style.transform = "rotate(-90deg)"
  
)

我知道这可能很简单,但我是初学者。所以希望有人能告诉我如何做到这一点。谢谢!

【问题讨论】:

试试这个:img.style.marginTop = "40px"; @ManasKhandelwal 是的,但是如何在现有代码中正确地实现它? 你能把 html/CSS 也分享给我,以便我能正确地展示给你 @ManasKhandelwal 我是通过 elementor 制作的,所以代码真的很垃圾。你不能告诉我如何把它放在现有的 javascript 代码中吗? 所以你想要滚动或正常的边距! 【参考方案1】:

试试这个:

const img = document.querySelector("#mocci-logo")

document.addEventListener("scroll", (e) => 
  if(!window.scrollY) 
    img.style.transform = "rotate(0deg)"
    img.style.marginTop = "0px"; // This can also be 0 or "0".
   else 
    img.style.transform = "rotate(-90deg)"
    img.style.marginTop = "60px";
  
)

【讨论】:

效果很好,谢谢玛纳斯!但现在的问题是,如果我滚动回顶部,徽标会停留在此边距(60 像素)并且不会回到起始位置? @leon_505 你需要添加 img.style.marginTop = "0";到第一个 IF 块。 @leon_505 只是一个有用的说明,当您在 css 中的值为 0 时,您可以用单位表示它,也可以不用单位表示。所以 0px 和 0 的处理方式是一样的。 @leon_505 我知道,只是不想混淆 OP 所以我做了"0px" @ManasKhandelwal 我认为 =) 不用担心!他可能很快就会遇到这种情况,所以我想提一下。

以上是关于使用JS旋转图像时如何添加边距顶部的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 flexbox 为图像留出边距?

js怎么设置div层左边距 及与顶部边距

如何使用屏障将视图约束到父级顶部

JS基于视点添加填充顶部?

我们如何在 php 中使用织物 Js 对画布上的图像执行相同的操作(缩放和旋转)?

如何将按钮放在回收站视图的顶部?