我想知道如何在按钮或标签上创建类似网站 stripe.com 的幻灯片效果
这是我的设计
前端代码
<nav id="sw-nav-developers" class="nav flex-md-column justify-content-between justify-content-md-start nav-pills nav-pills-light nav-fill"><a class="nav-item nav-link text-md-left active" data-toggle="tab" href="#payasyou-tab"><i class="icon fas fa-code"></i> HTML Structure</a>
<hr class="mt-2">
<a class="nav-link accent" style="color:#db78dd;font-weight: 600;text-transform: uppercase;">Software Coverage <i class="icon fas fa-long-arrow-alt-right"></i></a>
<a class="nav-item nav-link text-md-left " data-toggle="tab" href="#basic-tab"><i class="icon fas fa-code"></i>Basic</a>
<a class="nav-item nav-link text-md-left" data-toggle="tab" href="#pro-tab"><i class="icon fab fa-sass"></i> Pro</a>
<a class="nav-item nav-link text-md-left" href="#premium-tab" data-toggle="tab"><i class="icon fas fa-retweet fa-rotate-90"></i> Premium</a> <a class="nav-item nav-link text-md-left" href="#exclusive-tab" data-toggle="tab"><i class="icon fas fa-exclamation-triangle"></i> Exclusive</a>
<hr class="mt-2"><a class="nav-link accent" style="color:#45b2e8;font-weight: 600;text-transform: uppercase;">Hardware Coverage <i class="icon fas fa-long-arrow-alt-right"></i></a>
<a class="nav-item nav-link text-md-left " data-toggle="tab" href="#oneyear-tab"><i class="icon fas fa-code"></i> HTML Structure</a> <a class="nav-item nav-link text-md-left" data-toggle="tab" href="#twoyear-tab"><i class="icon fab fa-sass"></i> SASS compiler</a> </nav>
现在我在悬停时实现了滑动效果,但是如何在按钮单击或激活时实现。
我使用的 CSS
nav#sw-nav-developers a.nav-item {
position: relative;
width: 100%;
padding-left: 12px;
font-family: Camphor,Open Sans,Segoe UI,sans-serif;
text-align: left;
cursor: pointer;
border: none;
outline: none;
background: none;
-webkit-transition: color .3s;
transition: color .3s;
height: 34px;
transition:.5s;
}
.nav-pills-light .nav-link.active:before {
content:'';
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(50,50,93,.11);
overflow:hidden;
z-index:-99;
transform:scaleY(0);
transform-origin:bottom;
transition:transform 5s ease-in-out;
}
.nav-pills-light .nav-link.active:active:before {
transform:scaleY(1);
transform-origin:top;
}
请帮我实现这个以供引用你可以在stripe.com上看到同样的效果
最佳答案
无法理解您的要求,但如果您说您设法通过 :hover 实现了这一目标,以及如何通过点击或事件实现这一目标,则您需要两件事:
- 还添加一个 :active 和/或 :focus 规则。示例:
.nav-link.active:before ,
.nav-link:active:before ,
.nav-link:hover:before ,
.nav-link:focus:before {
/*your same code here */
};
- 添加代码以将 .active 类添加到当前元素,并将其从同级元素中删除(我猜您已经设法做到了)。
此外,这条规则是不正确的:它指的是当 .nav-link 有一个类 .active 并且用户正在点击(按住点击) 在元素上 - 这就是 :active 的意思。
.nav-link.active:active:before { ... }
关于javascript - 单击另一个按钮时如何在按钮上创建幻灯片效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55768154/