如何更改CSS下划线过渡的方向,并使其从右向左移动?

前端之家收集整理的这篇文章主要介绍了如何更改CSS下划线过渡的方向,并使其从右向左移动? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在互联网上发现了此CSS代码,它创建了下划线动画效果,我需要将其反转为从右到左而不是从左到右.

enter image description here

  1. .nav-item a {
  2. display: inline-block !important;
  3. &:after {
  4. -webkit-border-radius: 10px;
  5. -moz-border-radius: 10px;
  6. border-radius: 10px;
  7. -webkit-transition: all .3s cubic-bezier(.19,1,.22,1);
  8. -moz-transition: all .3s cubic-bezier(.19,1);
  9. transition: all .3s cubic-bezier(.19,1);
  10. -webkit-transform: scaleX(0) translate3d(0,0);
  11. -moz-transform: scaleX(0) translate3d(0,0);
  12. transform: scaleX(0) translate3d(0,0);
  13. -webkit-transform-origin: 0 0;
  14. -moz-transform-origin: 0 0;
  15. -ms-transform-origin: 0 0;
  16. -o-transform-origin: 0 0;
  17. transform-origin: 0 0;
  18. display: block;
  19. height: 4px;
  20. width: 100%;
  21. background-color: #6cb2eb;
  22. -o-transition: all .3s cubic-bezier(.19,1);
  23. opacity: 1;
  24. content: "";
  25. }
  26. &:hover {
  27. &:after {
  28. -webkit-transform: scaleX(1) translate3d(0,0);
  29. -moz-transform: scaleX(1) translate3d(0,0);
  30. transform: scaleX(1) translate3d(0,0);
  31. }
  32. }
  33. }

我试图将&:after从scaleX(1)更改为scaleX(-1),它可以按我的需要工作,但与文本距离较远.

enter image description here

最佳答案
只需将transform-origin从0 0更改为100%100%:

  1. .nav-item a {
  2. display: inline-block !important;
  3. }
  4. .nav-item a:after {
  5. border-radius: 10px;
  6. transition: all 0.3s cubic-bezier(0.19,0.22,1);
  7. transform: scaleX(0) translate3d(0,0);
  8. transform-origin: 100% 100%;
  9. display: block;
  10. height: 4px;
  11. width: 100%;
  12. background-color: #6cb2eb;
  13. opacity: 1;
  14. content: "";
  15. }
  16. .nav-item a:hover:after {
  17. -webkit-transform: scaleX(1) translate3d(0,0);
  18. -moz-transform: scaleX(1) translate3d(0,0);
  19. transform: scaleX(1) translate3d(0,0);
  20. }
  1. <div class="nav-item">
  2. <a>test</a>
  3. </div>

注意:我将scss转换为css,并删除了无用的特定于供应商的属性

猜你在找的CSS相关文章