以下是 jQuery+CSS3弹性过渡全屏翻页特效 的示例演示效果:
部分效果截图:
HTML代码(index.html):
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery+CSS3弹性过渡全屏翻页特效 </title>
<link rel='stylesheet prefetch' href='css/font-awesome.min.css'>
<link rel="stylesheet" type="text/css" href="css/zzsc-demo.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="wrapper">
<div class="prev-btn"><span class="fa fa-angle-up"></span></div>
<div class="next-btn"><span class="fa fa-angle-down"></span></div>
<div class="nav-dots">
<div data-slide="1" class="nav-dot">
</div>
<div data-slide="2" class="nav-dot">
</div>
<div data-slide="3" class="nav-dot">
</div>
<div data-slide="4" class="nav-dot">
</div>
<div data-slide="5" class="nav-dot">
</div>
</div>
<div data-slide="1" class="panel">
<div id="layer-1" class="trans-layer"></div>
<section id="section-1" class="section">
<div class="section-content">
<header class="zzsc-header">
<h1>jQuery和CSS3炫酷弹性过渡全屏翻页特效 <span>Elastic Full-window Page Slider With jQuery And CSS3</span></h1>
</header>
</div>
</section>
</div>
<div data-slide="2" class="panel">
<div id="layer-2" class="trans-layer"></div>
<section id="section-2" class="section">
<div class="section-content">
<h1>Section 2</h1>
</div>
</section>
</div>
<div data-slide="3" class="panel">
<div id="layer-3" class="trans-layer"></div>
<section id="section-3" class="section">
<div class="section-content">
<h1>Section 3</h1>
</div>
</section>
</div>
<div data-slide="4" class="panel">
<div id="layer-4" class="trans-layer"></div>
<section id="section-4" class="section">
<div class="section-content">
<h1>Section 4</h1>
</div>
</section>
</div>
<div data-slide="5" class="panel">
<div id="layer-5" class="trans-layer"></div>
<section id="section-5" class="section">
<div class="section-content">
</div>
</section>
</div>
</div>
<script src="js/jquery-2.1.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('.wrapper').each(function() {
var $slider = $(this);
var numberOfSlides = $slider.find('.panel').length;
$slider.find('.panel:eq(0)').addClass('_active');
$slider.find('.nav-dot:eq(0)').addClass('active');
var $activeSlide = $slider.find('.panel._active');
var $nextBtn = $slider.find('.next-btn');
var $prevBtn = $slider.find('.prev-btn');
$('.nav-dot').on('click', function() {
var slideToGo = $(this).data('slide');
goToSlide(slideToGo);
});
$slider.on('slide.changed', function() {
console.log('slide changed !');
$('.nav-dot').removeClass('active');
var $activeDot = $('.nav-dot[data-slide="'+$('.panel._active').data('slide')+'"]');
$activeDot.addClass('active');
});
$nextBtn.on('click', function(event) {
nextSlide();
});
$prevBtn.on('click', function(event) {
prevSlide();
});
function nextSlide() {
$activeSlide = $slider.find('.panel._active');
var $nextSlide = $activeSlide.next('.panel');
$activeSlide.removeClass('_active');
$nextSlide.addClass('_active');
//$activeSlide = $nextSlide;
var slideIndex = $slider.find('.panel._active').index('.panel');
console.log(slideIndex);
if(slideIndex >= numberOfSlides || slideIndex <= -1 ) {
firstSlide();
$slider.trigger('slide.changed');
}else {
$slider.trigger('slide.changed');
}
}
function prevSlide() {
$activeSlide = $slider.find('.panel._active');
var $prevSlide = $activeSlide.prev('.panel');
//console.log($prevSlide);
$activeSlide.removeClass('_active');
$prevSlide.addClass('_active');
//$activeSlide = $prevSlide;
var slideIndex = $slider.find('.panel._active').index();
console.log(slideIndex);
if(typeof $prevSlide === 'undefined'|| $prevSlide === null || $prevSlide.length == -1 || slideIndex <= -1 ) {
lastSlide();
$slider.trigger('slide.changed');
} else {
$slider.trigger('slide.changed');
}
}
function firstSlide() {
$('.panel._active').removeClass('_active');
$slider.find('.panel:eq(0)').addClass('_active');
$activeSlide = $slider.find('.panel:eq(0)');
}
function lastSlide() {
//console.log('last');
$('.panel._active').removeClass('_active');
$slider.find('.panel').eq(numberOfSlides-1).addClass('_active');
//$activeSlide = $slider.find('.panel:eq(numberOfSlides)');
}
function goToSlide(slideToGo) {
$('.panel._active').removeClass('_active');
$slider.find('.panel').eq(slideToGo -1).addClass('_active');
$activeSlide = $slider.find('.panel').eq(slideToGo -1).addClass('_active');
$slider.trigger('slide.changed');
}
});
</script>
</body>
</html>
CSS代码(style.css):
html,body{margin:0;padding:0;position:relative;top:0;left:0;width:100%;height:100%;}
.wrapper{position:relative;top:0;width:100vw;height:100vh;max-width:100%;max-height:100%;background:deepskyblue;overflow:hidden;}
.panel{position:absolute;width:100%;height:100%;top:0;left:0;bottom:0;right:0;margin:auto;}
.panel._active{z-index:10;}
.trans-layer,.section{position:absolute;width:100%;height:100%;top:0;left:0;bottom:0;right:0;}
.trans-layer{background:#000;transform:translateY(-100%) skew(0) rotate(0) scale(2);border-radius:50%;transition:all 500ms ease-in-out;transition-delay:500ms;}
._active .trans-layer{transform:translateY(0) skew(0) rotate(0) scale(2);transition-delay:0ms;}
.section{transform:translateY(100%);transition:all 500ms ease-in-out;transition-delay:0ms;background:#343434;}
._active .section{transform:translateY(0);transition-delay:500ms;}
.section-content{display:flex;flex-flow:column;width:100%;height:100%;justify-content:center;align-items:center;color:#fff;font-family:arial;text-transform:uppercase;opacity:0;transform:translateY(30px);transition:all 500ms ease;transition-delay:0s;}
._active .section-content{opacity:1;transform:translateY(0px);transition-delay:1000ms;}
.nav-dots{position:absolute;top:50%;right:10px;transform:translateY(-50%);z-index:20;width:40px;}
.nav-dot{width:10px;height:10px;margin:20px auto;border-radius:50%;background:#fff;cursor:pointer;transition:all 300ms ease-out;}
.nav-dot.active{background:red;}
.next-btn,.prev-btn{width:30px;height:30px;position:absolute;z-index:20;border:1px solid #fff;color:#fff;line-height:30px;text-align:center;font-size:24px;cursor:pointer;}
.next-btn{bottom:10px;right:14px;}
.prev-btn{top:10px;right:14px;}
CSS代码(zzsc-demo.css):
body,html{font-size:100%;padding:0;margin:0;}
/* Reset */
*,*:after,*:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
/* Clearfix hack by Nicolas Gallagher:http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before,.clearfix:after{content:" ";display:table;}
.clearfix:after{clear:both;}
body{background:#494A5F;color:#D5D6E2;font-weight:500;font-size:1.05em;font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
a{color:rgba(255,255,255,0.6);outline:none;text-decoration:none;-webkit-transition:0.2s;transition:0.2s;}
a:hover,a:focus{color:#74777b;text-decoration:none;}
.zzsc-container{margin:0 auto;}
.bgcolor-1{background:#f0efee;}
.bgcolor-2{background:#f9f9f9;}
.bgcolor-3{background:#e8e8e8;}
/*light grey*/
.bgcolor-4{background:#2f3238;color:#fff;}
/*Dark grey*/
.bgcolor-5{background:#df6659;color:#521e18;}
/*pink1*/
.bgcolor-6{background:#2fa8ec;}
/*sky blue*/
.bgcolor-7{background:#d0d6d6;}
/*White tea*/
.bgcolor-8{background:#3d4444;color:#fff;}
/*Dark grey2*/
.bgcolor-9{background:#ef3f52;color:#fff;}
/*pink2*/
.bgcolor-10{background:#64448f;color:#fff;}
/*Violet*/
.bgcolor-11{background:#3755ad;color:#fff;}
/*dark blue*/
.bgcolor-12{background:#3498DB;color:#fff;}
/*light blue*/
.bgcolor-20{background:#494A5F;color:#D5D6E2;}
/* Header */
.zzsc-header{padding:1em 190px 1em;letter-spacing:-1px;text-align:center;}
.zzsc-header h1{color:#D5D6E2;font-weight:600;font-size:2em;line-height:1;margin-bottom:0;font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
.zzsc-header h1 span{font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;display:block;font-size:60%;font-weight:400;padding:0.8em 0 0.5em 0;color:#c3c8cd;}
/*nav*/
.zzsc-demo a{color:#fff;text-decoration:none;}
.zzsc-demo{width:100%;padding-bottom:1.2em;}
.zzsc-demo a{display:inline-block;margin:0.5em;padding:0.6em 1em;border:3px solid #fff;font-weight:700;}
.zzsc-demo a:hover{opacity:0.6;}
.zzsc-demo a.current{background:#1d7db1;color:#fff;}
/* Top Navigation Style */
.zzsc-links{position:relative;display:inline-block;white-space:nowrap;font-size:1.5em;text-align:center;}
.zzsc-links::after{position:absolute;top:0;left:50%;margin-left:-1px;width:2px;height:100%;background:#dbdbdb;content:'';-webkit-transform:rotate3d(0,0,1,22.5deg);transform:rotate3d(0,0,1,22.5deg);}
.zzsc-icon{display:inline-block;margin:0.5em;padding:0em 0;width:1.5em;text-decoration:none;}
.zzsc-icon span{display:none;}
.zzsc-icon:before{margin:0 5px;text-transform:none;font-weight:normal;font-style:normal;font-variant:normal;font-family:'icomoon';line-height:1;speak:none;-webkit-font-smoothing:antialiased;}
/* footer */
.zzsc-footer{width:100%;padding-top:10px;}
.zzsc-small{font-size:0.8em;}
.center{text-align:center;}
/****/
.related{color:#fff;background:#494A5F;text-align:center;font-size:1.25em;padding:0.5em 0;overflow:hidden;}
.related > a{vertical-align:top;width:calc(100% - 20px);max-width:340px;display:inline-block;text-align:center;margin:20px 10px;padding:25px;font-family:"Microsoft YaHei","宋体","Segoe UI","Lucida Grande",Helvetica,Arial,sans-serif,FreeSans,Arimo;}
.related a{display:inline-block;text-align:left;margin:20px auto;padding:10px 20px;opacity:0.8;-webkit-transition:opacity 0.3s;transition:opacity 0.3s;-webkit-backface-visibility:hidden;}
.related a:hover,.related a:active{opacity:1;}
.related a img{max-width:100%;opacity:0.8;border-radius:4px;}
.related a:hover img,.related a:active img{opacity:1;}
.related h3{font-family:"Microsoft YaHei",sans-serif;font-size:1.2em}
.related a h3{font-size:0.85em;font-weight:300;margin-top:0.15em;color:#fff;}
/* icomoon */
.icon-zzsc-home-outline:before{content:"\e5000";}
.icon-zzsc-arrow-forward-outline:before{content:"\e5001";}
@media screen and (max-width:1024px){.zzsc-header{padding:2em 10% 2em;}
.zzsc-header h1{font-size:1.4em;}
.zzsc-links{font-size:1.4em}
}
@media screen and (max-width:960px){.zzsc-header{padding:2em 10% 2em;}
.zzsc-header h1{font-size:1.2em;}
.zzsc-links{font-size:1.2em}
.related h3{font-size:1em;}
.related a h3{font-size:0.8em;}
}
@media screen and (max-width:766px){.zzsc-header h1{font-size:1.3em;}
.zzsc-links{font-size:1.3em}
}
@media screen and (max-width:640px){.zzsc-header{padding:2em 10% 2em;}
.zzsc-header h1{font-size:1em;}
.zzsc-links{font-size:1em}
.related h3{font-size:0.8em;}
.related a h3{font-size:0.6em;}
}