这是一款基于HTML5 SVG的超酷雷达扫描式页面切换jQuery特效。该页面切换特效使用jQuery代码来动态生成svg,并使用velocity.js来驱动SVG完成页面切换时的雷达扫描效果个线条动画。
制作方法
HTML结构
该页面切换特效使用嵌套<div>
的HTML结构,每一个div.page
是一个页面,.active
代表当前页面。用于制作雷达扫描效果的SVG元素是通过jQuery代码动态生成的。rt-point
是页面底部的原形导航数字。footer
是分页按钮。
<div class="scene"> <!-- page start --> <div class="page page-1 active"> <div class="page--rotater"></div> <div class="page--content"> <h1>Page 1</h1> </div> </div> <!-- page end --> ... <div class="rt-point"> <span class="page-number page-number-1 active">1</span> <span class="page-number page-number-2">2</span> ... </div> <!-- footer start --> <div class="footer"> <div class="nav"> <ul> <li class="nav--btn nav--btn-1 active" data-page="1"></li> <li class="nav--btn nav--btn-2" data-page="2"></li> ... </ul> </div> </div> <!-- footer end --> </div>
页面的基本CSS样式如下:
.scene { position: relative; height: 100%; } .page { position: absolute; top: 0; left: 0; width: 100%; height: calc(100% - 10rem); -webkit-transition: -webkit-transform 0.7s; transition: transform 0.7s; will-change: transform; -webkit-transform-origin: 50% 100%; -ms-transform-origin: 50% 100%; transform-origin: 50% 100%; } .page.inactive { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .page.removing h1 { -webkit-transform: translateY(-100%); -ms-transform: translateY(-100%); transform: translateY(-100%); opacity: 0; } .page.down { -webkit-transition-delay: 0.3s; transition-delay: 0.3s; } .page.up h1 { -webkit-transition: all 0s !important; transition: all 0s !important; } .page--rotater { position: absolute; top: -250%; left: -175%; width: 450%; height: 350%; } .page--content { position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 15rem; font-size: 3rem; } @media (max-width: 990px) { .page--content { padding: 10rem; } } .page--content h1 { color: #fff; font-size: 8rem; font-family: SouthRose; text-transform: uppercase; -webkit-transition: -webkit-transform 0.3s, opacity 0.3s; transition: transform 0.3s, opacity 0.3s; will-change: transform, opacity; } .page.page-1 { z-index: 10; } .page.page-1 .page--rotater { background: #922D50; } ...
特效中使用媒体查询来调整字体大小,制作响应式的效果。
JAVASCRIPT
特效中使用velocity.js来驱动SVG。每一个功能都被封装为一个独立的函数,通过函数的名称你可以大概明白这个函数的作用。具体代码请参考下载文件中的main.js文件。