JavaScript 更改 CSS 在 if 语句中不起作用

标签 javascript css animation rotation transform

这是我的 html :

<a class="btn btn-primary btn-lg" id="signUpBtn" href="./pages/createaccount.php" onmouseover="rotateBtn()"> Sign up &raquo;</a>

这是 JS...当我将它从 if 语句中取出时,样式更改不起作用。我需要 if 语句在两个旋转之间来回切换。 这样做是为了学习,想使用 JS 也想看看它是如何与 jQuery 一起工作的

function rotateBtn() {
var isRotated = 0;
document.getElementById("signUpBtn").style.transformOrigin = "top center";
document.getElementById("signUpBtn").style.transition = "1s ease-in-out";

if (!isRotated) {
    document.getElementById("signUpBtn").style.transform = "rotateY(90deg)";
    isRotated = 1;
} 

if (isRotated) {
    document.getElementById("signUpBtn").style.transform = "rotateY(0deg)";
    isRotated = 0;
}

最佳答案

我认为你不需要使用 if else 语句,你只需要在两个动画之间添加一个延迟。所以你可以试试这个:

您需要使您的元素inline-blockblock 才能使旋转起作用。

document.getElementById("signUpBtn").style.transformOrigin = "top center";
document.getElementById("signUpBtn").style.display = "inline-block";
document.getElementById("signUpBtn").style.transition = "1s ease-in-out";

function rotateBtn() {
  document.getElementById("signUpBtn").style.transform = "rotateY(90deg)";

  setTimeout(function() {
    document.getElementById("signUpBtn").style.transform = "rotateY(0deg)";
  },1000);
}
<a class="btn btn-primary btn-lg" id="signUpBtn" href="./pages/createaccount.php" onmouseover="rotateBtn()">
     Sign up &raquo;</a>

你也可以像这样只使用 CSS 来做到这一点:

#signUpBtn {
  display: inline-block;
  transform-origin: top center;
  transition: 1s ease-in-out;
}

#signUpBtn:hover {
  animation: rotate 2s;
}

@keyframes rotate {
  0% {
    transform: rotateY(0deg);
  }
  50% {
    transform: rotateY(90deg);
  }
  100% {
    transform: rotateY(0deg);
    ;
  }
}
<a class="btn btn-primary btn-lg" id="signUpBtn" href="./pages/createaccount.php">
     Sign up &raquo;</a>

关于JavaScript 更改 CSS 在 if 语句中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47647727/

相关文章:

javascript - CallExpression 和 MemberExpression 的区别

javascript - 如何更改 IE8 中 Intranet 页面的安全配置,以便 Javascript 可以在不询问的情况下关闭窗口?

jquery - 粘性菜单 divi 卡住时不会保持居中

java - 动画中的过渡帧

html - 给箭头添加动画似乎改变了元素的中心点

javascript - 我在 Javascript 中实现 firstOrDefault 函数的缺陷在哪里?

javascript - 如何在 kineticjs 中向贝塞尔曲线添加运动?

html - 内联列表样式类型不覆盖外部样式规则

javascript - 在悬停时在正确位置显示 div(工具提示)

javascript - 如何折叠由 div 组成的 jQuery Accordion 菜单?