腾讯网络管理 發表於 2024-5-18 17:01:50

css特效 - 按钮hover文字上下滑动

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">核心代码</a></li><ul class="second_class_ul"><li><a href="#_lab2_0_0">html 代码</a></li><li><a href="#_lab2_0_1">css 部分代码</a></li></ul><li><a href="#_label1">完整代码如下</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_2">html 页面</a></li><li><a href="#_lab2_1_3">css 样式</a></li><li><a href="#_lab2_1_4">页面渲染效果</a></li></ul></ul></div><p>当鼠标悬浮按钮上方时,利用伪元素和定位来实现伪元素块上下滑入和滑出的交互效果。</p>
<p>此效果适用于较大的按钮入口,如主页 banner 处按钮,也可以放在当作首屏当作一个大 banner 作为视觉效果等场景。</p>
<p>核心代码部分,简要说明了写法思路;完整代码在最后,可直接复制到本地运行。</p>
<p class="maodian"><a name="_label0"></a></p><h2>核心代码</h2>
<p class="maodian"><a name="_lab2_0_0"></a></p><h3>html 代码</h3>
<div class="jb51code"><pre class="brush:xhtml;">&lt;div class="btn30"&gt;
&lt;span class="btn-text30"&gt;探&lt;/span&gt;
&lt;span class="btn-text30"&gt;索&lt;/span&gt;
&lt;span class="btn-text30"&gt;未&lt;/span&gt;
&lt;span class="btn-text30"&gt;知&lt;/span&gt;
&lt;/div&gt;
</pre></div>
<blockquote><p>一个 <code>div</code> 父元素,及其子元素 <code>span</code> ,形成一个大按钮。</p></blockquote>
<p class="maodian"><a name="_lab2_0_1"></a></p><h3>css 部分代码</h3>
<div class="jb51code"><pre class="brush:css;">.btn30{
height: 42px;
position: relative;
cursor: pointer;
display: flex;
overflow: hidden;
}
.btn-text30{
width: 36px;
height: 42px;
line-height: 42px;
text-align: center;
display: block;
background-color: #457356;
color: #ffffff;
font-size: 16px;
font-weight: 700;
position: relative;
}
.btn-text30:after{
width: 36px;
height: 42px;
position: absolute;
background-color: #3185fa;
color: #ffffff;
z-index: 99;
transition: 0.3s ease-in-out;/*添加过渡效果*/
}
.btn-text30:nth-of-type(1):after{
content: '学';
top: -42px;
left: 0;
}
.btn-text30:nth-of-type(2):after{
content: '无';
top: 42px;
left: 0px;
}
.btn-text30:nth-of-type(3):after{
content: '止';
top: -42px;
left: 0;
}
.btn-text30:nth-of-type(4):after{
content: '境';
top: 42px;
left: 0px;
}
.btn30:hover .btn-text30:after{
top: 0;/*改变伪元素定位*/
}
</pre></div>
<blockquote><p>每个 <code>span</code> 添加其伪元素 <code>:after</code> ,并通过 <code>content</code> 属性插入文本,然后通过定位让其每个伪元素放到其上或下的位置。</p></blockquote>
<blockquote><p>通过 <code>:hover</code> 获取鼠标状态,当鼠标悬浮在按钮上方时,改变其伪元素的定位,利用 <code>transition</code> 过渡效果,来让其伪元素上下滑入滑出,实现按钮块上下滑动的的交互效果。</p></blockquote>
<p class="maodian"><a name="_label1"></a></p><h2>完整代码如下</h2>
<p class="maodian"><a name="_lab2_1_2"></a></p><h3>html 页面</h3>
<div class="jb51code"><pre class="brush:xhtml;">&lt;!DOCTYPE html&gt;
&lt;html lang="zh"&gt;
&lt;head&gt;
    &lt;meta charset="utf-8"&gt;
    &lt;link rel="stylesheet" href="style.css" rel="external nofollow" &gt;
    &lt;title&gt;文字上下滑动按钮&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class="app"&gt;
      &lt;div class="btn30"&gt;
      &lt;span class="btn-text30"&gt;探&lt;/span&gt;
      &lt;span class="btn-text30"&gt;索&lt;/span&gt;
      &lt;span class="btn-text30"&gt;未&lt;/span&gt;
      &lt;span class="btn-text30"&gt;知&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre></div>
<p class="maodian"><a name="_lab2_1_3"></a></p><h3>css 样式</h3>
<div class="jb51code"><pre class="brush:css;">/** style.css **/
.app{
width: 100%;
height: 100vh;
background-color: #ffffff;
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.btn30{
height: 42px;
position: relative;
cursor: pointer;
display: flex;
overflow: hidden;
}
.btn-text30{
width: 36px;
height: 42px;
line-height: 42px;
text-align: center;
display: block;
background-color: #457356;
color: #ffffff;
font-size: 16px;
font-weight: 700;
position: relative;
}
.btn-text30:after{
width: 36px;
height: 42px;
position: absolute;
background-color: #3185fa;
color: #ffffff;
z-index: 99;
transition: 0.3s ease-in-out;
}
.btn-text30:nth-of-type(1):after{
content: '学';
top: -42px;
left: 0;
}
.btn-text30:nth-of-type(2):after{
content: '无';
top: 42px;
left: 0px;
}
.btn-text30:nth-of-type(3):after{
content: '止';
top: -42px;
left: 0;
}
.btn-text30:nth-of-type(4):after{
content: '境';
top: 42px;
left: 0px;
}
.btn30:hover .btn-text30:after{
top: 0;
}
</pre></div>
<p class="maodian"><a name="_lab2_1_4"></a></p><h3>页面渲染效果</h3>
<p style="text-align:center"><img alt=" " height="220" src="https://img.jbzj.com/file_images/article/202405/2024518165428459.gif" width="400" /></p>
<p>以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。</p>
<p>CSS 是一种很酷很有趣的计算机语言,在这里跟大家分享一些 CSS 实例 Demo,为学习者获取灵感和思路提供一点帮助,希望你们喜欢。</p>
頁: [1]
查看完整版本: css特效 - 按钮hover文字上下滑动