当鼠标划过链接的时候,链接的 Hover 效果如果是 3D 的翻转,是不是很不错呀?好吧,今天就教你如何实现。
HTML 结构:
<a href="#" class="roll-link"> <span data-title="测试 3D 动画效果的链接">测试 3D 动画效果的链接</span> </a>
CSS 样式:
.roll-link { display: inline-block; overflow: hidden; vertical-align: top; -webkit-perspective: 600px; -moz-perspective: 600px; -webkit-perspective-origin: 50% 50%; -moz-perspective-origin: 50% 50%; } .roll-link:hover {text-decoration:none;} .roll-link span { display: block; position: relative; padding: 0 2px; color: #003253; -webkit-transition: all 400ms ease; -moz-transition: all 400ms ease; -webkit-transform-origin: 50% 0%; -moz-transform-origin: 50% 0%; -webkit-transform-style: preserve-3d; -moz-transform-style: preserve-3d; } .roll-link:hover span { background: #065588; -webkit-transform: translate3d( 0px, 0px, -30px ) rotateX( 90deg ); -moz-transform: translate3d( 0px, 0px, -30px ) rotateX( 90deg ); } .roll-link span:after { content: attr(data-title); display: block; position: absolute; left: 0; top: 0; padding: 0 2px; color: #f3f2ee; background: #065588; -webkit-transform-origin: 50% 0%; -moz-transform-origin: 50% 0%; -webkit-transform: translate3d( 0px, 105%, 0px ) rotateX( -90deg ); -moz-transform: translate3d( 0px, 105%, 0px ) rotateX( -90deg ); }
假如你的链接是这样的:
<a href="#">这是一个没有内容的链接</a>
那么,其实你可以通过 javascript 动态更换样式和添加字元素来达到对所有链接的 3D 效果应用。使用 jQuery 的做法如下:
var linkArr = $("a"); for(var i = 0; i < linkArr.length; i ++) { var value = linkArr[i].text; $(linkArr[i]).addClass("roll-link"); $(linkArr[i]).html("<span data-title='"+ value +"'>"+value+"</span>"); }
Ok,完成了,鼠标放到下面 DEMO 的地方,看看效果吧。