jquery - 单击按钮时如何使用 Jquery 制作缩小和增长效果的动画?

标签 jquery html css jquery-animate

如何使用 jquery 缩放 div 并在单击按钮时显示/隐藏“登录”或“注册”?

我想以此为例: 引用:Scale when button is clicked

$(document).ready(function(){
	$("#logIn").click(function(){
  		$(".log-in").show();
      $(".register").hide();
  });
  
  $("#register").click(function(){
  		$(".register").show();
      $(".log-in").hide();
  });
  
});
.login-register {width: 500px;display: block;margin: 0 auto;}
.login-register nav{ padding: 0;background:red;}
.login-register nav ul {padding:0; margin:0 auto;}
.login-register nav ul li{display: inline-block; vertical-align: middle; position: relative; margin: 0 10px;}
.login-register nav ul li a{text-decoration:none; display: block; padding:17px 24px; color: #fff;transition: all 0.3s linear; -webkit-transition: all 0.3s linear; background:green;border-radius: 10px 10px 0 0;}


.log-in {text-align:center; background:antiquewhite;}
.log-in input {display:block; margin: 0 auto;}

.register {text-align:center; background:antiquewhite; display:none;}
.register input {display:block; margin: 0 auto;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="login-register">
  <nav>
    <ul>
      <li><a id="logIn" href="#">Log In</a></li>
      <li><a id="register" href="#">Register</a></li>
    </ul>
  </nav>
  
  <div class="log-in">
    <input type="text" name="username"  placeholder="Username*">
    <input type="text" name="password" placeholder="Password*">
    <input type="submit" name="submit" value="Log In">
  </div>
  
    <div class="register">
    <input type="text" name="firstname"  placeholder="First Name*">
    <input type="text" name="lastname" placeholder="Last Name*">
    <input type="submit" name="submit" value="Sign Up">
  </div>
</div>

这是我的示例代码,单击按钮时将显示“登录”和“注册”div。

注意:我将寄存器div设置为display:none;来隐藏它,这样它就不会重叠。

最佳答案

$(document).ready(function() {
  $("#logIn").click(function() {
    $(".register").addClass("zoomout");
    $(".register").on("transitionend", function() {
      if ($(".register").hasClass("zoomout"))
        $(".log-in").removeClass("zoomout");
    })

  });

  $("#register").click(function() {
    $(".log-in").addClass("zoomout");
    $(".log-in").on('transitionend', function() {
      if ($(".log-in").hasClass("zoomout"))
        $(".register").removeClass("zoomout");
    })


  });

});
.login-register {
  width: 500px;
  display: block;
  margin: 0 auto;
  position: relative;
}

.login-register nav {
  padding: 0;
  background: red;
}

.login-register nav ul {
  padding: 0;
  margin: 0 auto;
}

.login-register nav ul li {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  margin: 0 10px;
}

.login-register nav ul li a {
  text-decoration: none;
  display: block;
  padding: 17px 24px;
  color: #fff;
  transition: all 0.3s linear;
  -webkit-transition: all 0.3s linear;
  background: green;
  border-radius: 10px 10px 0 0;
}

.log-in {
  text-align: center;
  background: antiquewhite;
}

.log-in input {
  display: block;
  margin: 0 auto;
}

.register {
  text-align: center;
  background: antiquewhite;
}

.register input {
  display: block;
  margin: 0 auto;
}

.log-in,
.register {
  transition: all 0.5s;
  transform: scale(1);
  position: absolute;
  left: 0;
  width: 100%;
}

.zoomout {
  transform: scale(0);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="login-register">
  <nav>
    <ul>
      <li><a id="logIn" href="#">Log In</a></li>
      <li><a id="register" href="#">Register</a></li>
    </ul>
  </nav>

  <div class="log-in">
    <input type="text" name="username" placeholder="Username*">
    <input type="text" name="password" placeholder="Password*">
    <input type="submit" name="submit" value="Log In">
  </div>

  <div class="register zoomout">
    <input type="text" name="firstname" placeholder="First Name*">
    <input type="text" name="lastname" placeholder="Last Name*">
    <input type="submit" name="submit" value="Sign Up">
  </div>
</div>

关于jquery - 单击按钮时如何使用 Jquery 制作缩小和增长效果的动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43335613/

相关文章:

javascript - data-toggle ="modal"有什么用?

html - 为什么图像不适合 html 中的表格单元格高度?

javascript - 为句子中的一个词设置样式

html - 跳过表格中奇数行和偶数行中的某些行——连续的 CSS 样式

html - TextAreas 中 IE9 中的行高差异

html - 如何在比例动画中保持原点在图像中心?

javascript - 该选择器有超过 1 个元素错误

javascript - 衡量用户在网站访问期间花费的时间

javascript - 揭秘 JQuery 插件

html - 在图像上悬停可见图像信息?