Tailwind 下划线悬停动画

12
我花了一天的时间学习如何使用Tailwind-CSS实现链接悬停后的动画效果。这是我想要使自己的链接看起来像视频样式的动画。
这里是从YouTube中获取的示例: Sample from Youtube
我已经尝试过使用 `:after`,但是没有成功。这是我的链接组件=> https://codepen.io/qqharry21/pen/xxPwqjQ
我希望能够学习如何修复它,并且通过Tailwind-CSS使其像视频中那样运作,谢谢!
4个回答

28
你可以使用纯Tailwind中的group max-w-{x}和transition-all来实现这一点,使用span上的group-hover,这样当你经过链接时它就会开始动画。
<a href="#" class="group text-sky-600 transition duration-300">
Link
<span class="block max-w-0 group-hover:max-w-full transition-all duration-500 h-0.5 bg-sky-600"></span>
</a>

9

如果您不想为此功能包含CSS文件,或者您只想在Tailwind中完成它 - 我下面发布的代码片段纯粹基于Tailwind CSS。

<a class="group text-pink-500 transition-all duration-300 ease-in-out" href="#">
  <span class="bg-left-bottom bg-gradient-to-r from-pink-500 to-pink-500 bg-[length:0%_2px] bg-no-repeat group-hover:bg-[length:100%_2px] transition-all duration-500 ease-out">
    This text gets 'underlined' on hover
  </span>
</a>

祝福并愉快地编码!


9
你可以使用过渡效果来实现这个功能:

    .link-underline {
        border-bottom-width: 0;
        background-image: linear-gradient(transparent, transparent), linear-gradient(#fff, #fff);
        background-size: 0 3px;
        background-position: 0 100%;
        background-repeat: no-repeat;
        transition: background-size .5s ease-in-out;
    }

    .link-underline-black {
        background-image: linear-gradient(transparent, transparent), linear-gradient(#F2C, #F2C)
    }

    .link-underline:hover {
        background-size: 100% 3px;
        background-position: 0 100%
    }
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" integrity="sha512-wnea99uKIC3TJF7v4eKk4Y+lMz2Mklv18+r4na2Gn1abDRPPOeef95xTzdwGD9e6zXJBteMIhZ1+68QC5byJZw==" crossorigin="anonymous" referrerpolicy="no-referrer" />

<div class="min-h-screen bg-gray-100 py-6 flex flex-col justify-center sm:py-12">
    <div class="relative py-3 sm:max-w-xl sm:mx-auto">
        <a href="#" class="font-display max-w-sm text-2xl font-bold leading-tight">
            <span class="link link-underline link-underline-black text-black"> Link Hover Effect </span>
        </a>
    </div>
</div>


你的答案可以通过提供更多支持信息来改进。请在编辑中添加进一步的细节,如引用或文档,以便他人可以确认你的答案是否正确。你可以在帮助中心找到关于如何编写良好答案的更多信息。 - Community

1
你可以使用after伪元素在一行中完成所有操作。
<section class="bg-[#0077b6] h-screen w-screen text-white flex items-center justify-center">
  <a class="text-3xl relative after:bg-white after:absolute after:h-1 after:w-0 after:bottom-0 after:left-0 hover:after:w-full after:transition-all after:duration-300 cursor-pointer">Text you want to underline in just one line</a>
</section>

这是一个带有使用案例的钢笔。

https://codepen.io/Marcos-Riverola/pen/poQmRKV?editors=1010


简洁而有效!最佳答案 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接