html - 如何从右到左为元素宽度设置动画::之后?

标签 html css animation flip

我有一个按钮,它使用::after 伪来填充背景。目前它从左到右填充,这在宽度从 0 到 100% 时有意义。但是,我希望它翻转它填充的方式。

a.project--link {
  margin: 2rem auto 0 auto;
  padding: 1rem 0;
  display: block;
  border: 1px solid black;
  box-shadow: 0 0 10px rgba(red, .2);
  width: 100%;
  transition: all .2s ease;
  z-index: 1;
  }
  a.project--link:hover {
    box-shadow: 0 0 10px rgba(red, .7);
    transform: scale(1.02);
    transition: all .2s ease;
  }
  a.project--link::after {
    display: block;
    content: '';
    height: 100%;
    width: 0;
    top: 0;
    z-index: -1;
    background-color: red;
    position: absolute;
  }

a.project--link:hover::after {
  width: 100%;
  transition: .3s linear;
}
<a href="#" class="project--link">View Project</a>

如果有人能阐明如何翻转动画,那将是一个巨大的帮助。

最佳答案

使用transform: scaleX()代替width,并使用transform-origin来控制方向。

a.project--link {
  margin: 2rem auto 0 auto;
  padding: 1rem 0;
  display: block;
  border: 1px solid black;
  box-shadow: 0 0 10px rgba(red, .2);
  width: 100%;
  transition: all .2s ease;
  z-index: 1;
  position: relative;
}

a.project--link:hover {
  box-shadow: 0 0 10px rgba(red, .7);
  transform: scale(1.02);
  transition: all .2s ease;
  transform-origin: 0 100%;
}

a.project--link::after {
  display: block;
  content: '';
  height: 100%;
  top: 0;
  width: 100%;
  z-index: -1;
  background-color: red;
  position: absolute;
  transition: .3s linear;
  transform: scaleX(0);
  transform-origin: 100% 0;
}

a.project--link:hover::after {
  transform: scaleX(1);
}
<a href="#" class="project--link">View Project</a>

关于html - 如何从右到左为元素宽度设置动画::之后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43663498/

相关文章:

javascript - 拉斐尔 JS : how to move/animate a path object?

javascript - 单次输入表单如何避免重复提交?

javascript - 如何通过使用 Javascript 单击按钮使图像 move ?

javascript - Jquery 隐藏/显示不适用于动画

javascript - 如何在网格中独立平铺 div,而不管一行中 div 的最大大小?

css - 如何使代码块输出在 quarto Revealjs 演示文稿中水平滚动

javascript - 使用该邮件功能附加一个文件。那可能吗?

javascript - 如何消除 Angular 垫按钮切换悬停效果?

html - CSS3跳跃动画

macos - 中间状态期间的 NSProgressIndicator 动画