我在链接上有一个很酷的CSS过渡效果(称为“链接”),当您将鼠标悬停在链接上时会出现两个额外的链接。最重要的是,“链接”这个词本身就变成了“LinkedIn”。
问题是,两个额外链接的不透明度转换非常平滑,“链接”到“LinkedIn”的文本转换不是。它只是立即开启悬停。
有没有办法让它更顺畅地匹配其他链接?以某种方式从链接消失到LinkedIn?
谢谢!
.links {
display: flex;
flex-direction: column;
margin-left: 5%;
color: white;
font-family: 'heebo';
font-size: 30px;
text-align: center;
width: 140px;
}
.links ul {
width: 100%;
display: flex;
flex-direction: column;
}
.linksG {
color: #F28500;
text-decoration: none;
opacity: 0;
transition: opacity .55s ease-in-out;
-moz-transition: opacity .55s ease-in-out;
-webkit-transition: opacity .55s ease-in-out;
}
.linksL:before {
color: white;
text-decoration: none;
content: 'Links';
transition: content 1s;
-moz-transition: content 1s;
-webkit-transition: content 1s;
}
.linksS {
color: #D95D39;
text-decoration: none;
opacity: 0;
transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-webkit-transition: opacity 1s ease-in-out;
}
.links:hover .linksG {
opacity: 1.0;
transition: opacity .55s ease-in-out;
-moz-transition: opacity .55s ease-in-out;
-webkit-transition: opacity .55s ease-in-out;
}
.links:hover .linksS {
opacity: 1.0;
transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-webkit-transition: opacity 1s ease-in-out;
}
.links:hover .linksL:before {
content: 'LinkedIn';
text-decoration: none;
transition: content .55s;
-moz-transition: content .55s;
-webkit-transition: content .55s;
}
<body style="background-color: black;">
<div class="links">
<ul>
<li>
<a class="linksG" href="http://github.com">Github</a>
</li>
<li>
<a class="linksL" style="text-decoration: none;" href="http://linkedin.com/"></a>
</li>
<li>
<a class="linksS" href="http://stackoverflow.com">S/Overflow</a>
</li>
</ul>
</div>
</body>
答案 0 :(得分:1)
您在更改文字时不能使用css transition
,但可以在:before
中添加其他文字并在不透明度的hove上显示
.links {
display: flex;
flex-direction: column;
margin-left: 5%;
color: white;
font-family: 'heebo';
font-size: 30px;
text-align: center;
width: 140px;
}
.links ul {
width: 100%;
display: flex;
flex-direction: column;
}
.linksG {
color: #F28500;
text-decoration: none;
opacity: 0;
transition: opacity .55s ease-in-out;
-moz-transition: opacity .55s ease-in-out;
-webkit-transition: opacity .55s ease-in-out;
}
.contentClass{
position:relative;
}
.linksL:before {
position:absolute;
left:0;
color: white;
text-decoration: none;
content: 'Links';
transition: opacity 1s;
-moz-transition: opacity 1s;
-webkit-transition: opacity 1s;
}
.linksL:after {
position:absolute;
left:0;
color: white;
opacity:0;
text-decoration: none;
content: 'Linkedin';
transition: opacity 1s;
-moz-transition: opacity 1s;
-webkit-transition: opacity 1s;
}
.linksS {
color: #D95D39;
text-decoration: none;
opacity: 0;
transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-webkit-transition: opacity 1s ease-in-out;
}
.links:hover .linksG {
opacity: 1.0;
transition: opacity .55s ease-in-out;
-moz-transition: opacity .55s ease-in-out;
-webkit-transition: opacity .55s ease-in-out;
}
.links:hover .linksS {
opacity: 1.0;
transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-webkit-transition: opacity 1s ease-in-out;
}
.links:hover .linksL:before {
opacity:0;
text-decoration: none;
transition: opacity .55s;
-moz-transition: opacity .55s;
-webkit-transition: opacity .55s;
}
.links:hover .linksL:after {
opacity:1;
text-decoration: none;
transition: opacity .55s;
-moz-transition: opacity .55s;
-webkit-transition: opacity .55s;
}
<body style="background-color: black;">
<div class="links">
<ul>
<li>
<a class="linksG" href="http://github.com">Github</a>
</li>
<li class="contentClass">
<a class="linksL" style="text-decoration: none;" href="http://linkedin.com/"></a>
</li>
<li>
<a class="linksS" href="http://stackoverflow.com">S/Overflow</a>
</li>
</ul>
</div>
</body>