jQuery 动画按钮背景形状

标签 jquery css animation

我正在尝试复制在该网站上看到的按钮悬停效果:http://www.dewitt.ch/

他们正在使用一个 css 样式的三 Angular 形并在鼠标悬停时对其进行动画处理。

jQuery(".btn")
 .mouseover(function () {
  jQuery(this).find(".triangle").animate({
    right: "-50px"
  }, 100);
 })
.mouseout(function () {
 jQuery(this).find(".triangle").animate({
    right: "-500px"
 }, 100,

 function () {
    jQuery(this).find(".triangle").css(
        "right", "100%"
    )
 });
});

我在这里创建了一个代码片段来展示我目前的努力:

jQuery(".btn")
  .mouseover(function() {
    jQuery(this).find(".triangle").animate({
      right: "0px"
    });
  })
  .mouseout(function() {
    jQuery(this).find(".triangle").animate({
      right: "100%"
    });
  });
.btn {
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  -o-backface-visibility: hidden;
  backface-visibility: hidden;
  display: inline-block;
  border: 1px solid #d5b7a0;
  color: #d5b7a0;
  font: 400 1.2em/1em Arial, Helvetica, sans-serif;
  height: 48px;
  line-height: 48px;
  margin-top: 20px;
  overflow: hidden;
  padding: 0 50px;
  position: relative;
  text-transform: uppercase;
  letter-spacing: 2px;
  background: 0 0;
  cursor: pointer;
  transform: translate3d(0px, 0px, 0px);
}

.btn .triangle {
  width: 100%;
  position: absolute;
  top: 0;
  border-left: 52px solid transparent;
  border-right: 52px solid transparent;
  border-top: 52px solid #d5b7a0;
  display: block;
  right: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#" class="btn">
  <span class="triangle"></span>
  <span>Button</span>
</a>

我快要让它正常工作了,但三 Angular 形在“弹跳”,而且我正在努力让它从左边进入并从右边退出。

我正在使用 jQuery .mouseover 和 .mouseout 来触发 .animate 这可能不是最好的方法?

最佳答案

为什么不用css:

.btn .triangle {
  -webkit-transition:all 0.4s ease;
  right:100%;
}

.btn:hover .triangle {
  right:0;
}

P.s:您的 jquery animate 缺少时间;

关于jQuery 动画按钮背景形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26851893/

相关文章:

javascript - 在 CKEditor 中删除 HTML 元素

jquery - jQuery 自动完成和 lucene 的问题

css - Bootstrap 的网格和卡片问题

html - Sprite 不工作 - 背景位置 = 50%

html - 图片点击自定义文本位置

jquery - 使用 jQuery 为属性已定义为 "!important"的对象设置动画

jquery - 如何使用 jQuery 获取相对值的 Padding 或 margin 值

jquery - 如何使用 jquery 将 div 从一个 div 动画化到另一个 div?

animation - 浮图动画可能吗?

javascript - jQuery 中列表项的顺序效果