我在进行简单的 3D 变换时遇到了问题:
当我将光标悬停在任何链接上时,一切顺利,但是当我在链接上缓慢移动光标时,悬停变得疯狂,它开始在悬停和非悬停之间振荡!
我真的不知道为什么它会这样......
CSS:
header nav a, header nav a:after, header nav a:before {
border-radius: 3px;
display: inline-block;
padding: 11px 10px 10px 10px;
}
header nav a, header nav a:before {
background-color: rgb(255, 255, 255);
color: rgb(51, 51, 51);
}
header nav a {
position: relative;
backface-visibility: hidden;
-moz-backface-visibility: hidden;
-webkit-backface-visibility: hidden;
font-size: 12px;
line-height: 8px;
perspective: 9999px;
-moz-perspective: 9999;;
-webkit-perspective: 9999px;
text-decoration: none;
text-transform: uppercase;
transform: rotateX(0deg) translateZ(-15px);
-moz-transform: rotateX(0deg) translateZ(-15px);
-webkit-transform: rotateX(0deg) translateZ(-15px);
transform-origin: center center -15px;
-moz-transform-origin: center center -15px;
-webkit-transform-origin: center center -15px;
transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
-webkit-transform-style: preserve-3d;
transition: transform 0.5s;
-moz-transition: -moz-transform 0.5s;
-webkit-transition: -webkit-transform 0.5s;
}
header nav a:after, header nav a:before {
position: absolute;
left: 0px;
top: 0px;
content: attr(data-label);
}
header nav a:after, header nav a:hover {
background-color: rgb(51, 51, 51);
color: rgb(255, 255, 255);
}
header nav a:after {
transform: rotateX(-90deg) translateZ(15px);
-moz-transform: rotateX(-90deg) translateZ(15px);
-webkit-transform: rotateX(-90deg) translateZ(15px);
}
header nav a:before {
transform: rotateX(0deg) translateZ(15px);
-moz-transform: rotateX(0deg) translateZ(15px);
-webkit-transform: rotateX(0deg) translateZ(15px);
}
header nav a:hover {
transform: rotateX(90deg) translateZ(-15px);
-moz-transform: rotateX(90deg) translateZ(-15px);
-webkit-transform: rotateX(90deg) translateZ(-15px);
}
HTML
<header>
<nav>
<a href="#/link-1" data-label="Link #1">Link #1</a>
<a href="#/link-2" data-label="Link #2">Link #2</a>
<a href="#/link-3" data-label="Link #3">Link #3</a>
</nav>
</header>