HTML5+CSS3左右切换滑块特效

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 HTML5+CSS3左右切换滑块特效 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图:

HTML5+CSS3左右切换滑块特效

HTML代码(index.html):

<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
	<meta charset="UTF-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>HTML5+CSS3左右切换滑块特效</title>
	<link rel="stylesheet" type="text/css" href="fonts/feather/style.css">
	<link rel="stylesheet" type="text/css" href="css/demo.css" />
	<link rel="stylesheet" type="text/css" href="css/component.css" />
	<script src="js/modernizr.custom.js"></script>
</head>
<body>
<div class="container">
	<section class="slider">
		<div class="slide slide--current" data-content="content-1">
			<div class="slide__mover">
				<div class="zoomer flex-center">
					<img class="zoomer__image" src="images/iphone.png" alt="iPhone" />
					<div class="preview">
						<img src="images/iphone-content-preview.png" alt="iPhone app preview" />
						<div class="zoomer__area zoomer__area--size-2"></div>
					</div>
				</div>
			</div>
		</div>
		<div class="slide" data-content="content-2">
			<div class="slide__mover">
				<div class="zoomer flex-center">
					<img class="zoomer__image" src="images/ipad.png" alt="iPad Mini" />
					<div class="preview">
						<img src="images/ipad-content-preview.png" alt="iPad Mini app preview" />
						<div class="zoomer__area zoomer__area--size-4"></div>
					</div>
				</div>
			</div>
			<h2 class="slide__title"><span>The Fantastic</span> iPad Mini</h2>
		</div>
		<div class="slide" data-content="content-3">
			<div class="slide__mover">
				<div class="zoomer flex-center">
					<img class="zoomer__image" src="images/macbook.png" alt="MacBook" />
					<div class="preview">
						<img src="images/macbook-content-preview.jpg" alt="MacBook app preview" />
						<div class="zoomer__area zoomer__area--size-3"></div>
					</div>
				</div>
			</div>
			<h2 class="slide__title"><span>The Amazing</span> MacBook</h2>
		</div>
		<div class="slide" data-content="content-4">
			<div class="slide__mover">
				<div class="zoomer flex-center">
					<img class="zoomer__image" src="images/imac.png" alt="iMac" />
					<div class="preview">
						<img src="images/imac-content-preview.jpg" alt="iMac app preview" />
						<div class="zoomer__area zoomer__area--size-5"></div>
					</div>
				</div>
			</div>
			<h2 class="slide__title"><span>The Glorious</span> iMac</h2>
		</div>
		<div class="slide" data-content="content-5">
			<div class="slide__mover">
				<div class="zoomer flex-center">
					<img class="zoomer__image" src="images/apple-watch.png" alt="Apple Watch" />
					<div class="preview rounded">
						<img src="images/apple-watch-content-preview.png" alt="Apple Watch app preview" />
						<div class="zoomer__area zoomer__area--size-1"></div>
					</div>
				</div>
			</div>
			<h2 class="slide__title"><span>The Fabulous</span> Apple Watch</h2>
		</div>
		<nav class="slider__nav">
			<button class="button button--nav-prev"><i class="icon icon--arrow-left"></i><span class="text-hidden">Previous product</span></button>
			<button class="button button--zoom"><i class="icon icon--zoom"></i><span class="text-hidden">View details</span></button>
			<button class="button button--nav-next"><i class="icon icon--arrow-right"></i><span class="text-hidden">Next product</span></button>
		</nav>
	</section>
	<section class="content">
		<div class="content__item" id="content-1">
			<img class="content__item-img rounded-right" src="images/iphone-content.png" alt="Apple Watch Content" />
			<div class="content__item-inner">
				<h2>The iPhone 6</h2>
				<h3>Incredible performance for powerful apps</h3>
				<p>Built on 64-bit desktop-class architecture, the new A8 chip delivers more power, even while driving a larger display. The M8 motion coprocessor efficiently gathers data from advanced sensors and a new barometer. And with increased battery life, iPhone 6 lets you do more, for longer than ever.</p>
				<p>Learn more about this technology &xrarr;</p>
			</div>
		</div>
		<div class="content__item" id="content-2">
			<img class="content__item-img rounded-right" src="images/ipad-content.jpg" alt="iPad Mini Content" />
			<div class="content__item-inner">
				<h2>The iPad Mini</h2>
				<h3>Desktop-class architecture without a desktop</h3>
				<p>Don’t let its size fool you. iPad mini 3 is powered by an A7 chip with 64-bit desktop-class architecture. A7 delivers amazing processing power without sacrificing battery life. So you get incredible performance in a device you can take with you wherever you go.</p>
				<p>Learn more about Performance &xrarr;</p>
			</div>
		</div>
		<div class="content__item" id="content-3">
			<img class="content__item-img rounded-right" src="images/macbook-content.jpg" alt="MacBook Content" />
			<div class="content__item-inner">
				<h2>The MacBook</h2>
				<h3>It's the future of the notebook</h3>
				<p>With the new MacBook, we set out to do the impossible: engineer a full-size experience into the lightest and most compact Mac notebook ever. That meant reimagining every element to make it not only lighter and thinner but also better. The result is more than just a new notebook. It's the future of the notebook.</p>
				<p>Learn more about the design &xrarr;</p>
			</div>
		</div>
		<div class="content__item" id="content-4">
			<img class="content__item-img rounded-right" src="images/imac-content.jpg" alt="iMac Content" />
			<div class="content__item-inner">
				<h2>The iMac</h2>
				<h3>Engineered to the very last detail</h3>
				<p>Every new Mac comes with Photos, iMovie, GarageBand, Pages, Numbers, and Keynote. So you can be creative with your photos, videos, music, documents, spreadsheets, and presentations right from the start. You also get great apps for email, surfing the web, sending texts, and making FaceTime calls — there’s even an app for finding new apps.</p>
				<p>Learn more about the iMac's features &xrarr;</p>
			</div>
		</div>
		<div class="content__item" id="content-5">
			<img class="content__item-img rounded-right" src="images/apple-watch-content.png" alt="Apple Watch Content" />
			<div class="content__item-inner">
				<h2>The Apple Watch</h2>
				<h3>Entirely new ways to stay in touch</h3>
				<p>Apple Watch makes all the ways you're used to communicating more convenient. And because it sits right on your wrist, it can add a physical dimension to alerts and notifications. For example, you’ll feel a gentle tap with each incoming message. Apple Watch also lets you connect with your favorite people in fun, spontaneous ways — like sending a tap, a sketch, or even your heartbeat. </p>
				<p>Learn more about new ways to connect &xrarr;</p>
			</div>
		</div>
		<button class="button button--close"><i class="icon icon--circle-cross"></i><span class="text-hidden">Close content</span></button>
	</section>
</div>
<script src="js/classie.js"></script>
<script src="js/dynamics.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

JS代码(main.js):

/** * main.js * http://www.codrops.com * * Licensed under the MIT license. * http://www.opensource.org/licenses/mit-license.php * * Copyright 2015,Codrops * http://www.codrops.com */
;
	(function(window){
	'use strict';
	var bodyEl = document.body,docElem = window.document.documentElement,support ={
	transitions:Modernizr.csstransitions}
,// transition end event nametransEndEventNames ={
	'WebkitTransition':'webkitTransitionEnd','MozTransition':'transitionend','OTransition':'oTransitionEnd','msTransition':'MSTransitionEnd','transition':'transitionend'}
,transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ],onEndTransition = function( el,callback ){
	var onEndCallbackFn = function( ev ){
	if( support.transitions ){
	if( ev.target != this ) return;
	this.removeEventListener( transEndEventName,onEndCallbackFn );
}
if( callback && typeof callback === 'function' ){
	callback.call(this);
}
}
;
	if( support.transitions ){
	el.addEventListener( transEndEventName,onEndCallbackFn );
}
else{
	onEndCallbackFn();
}
}
,// window sizeswin ={
	width:window.innerWidth,height:window.innerHeight}
,// some helper vars to disallow scrollinglockScroll = false,xscroll,yscroll,scrollContainer = document.querySelector('.container'),// the main slider and its itemssliderEl = document.querySelector('.slider'),items = [].slice.call(sliderEl.querySelectorAll('.slide')),// total number of itemsitemsTotal = items.length,// navigation controls/arrowsnavRightCtrl = sliderEl.querySelector('.button--nav-next'),navLeftCtrl = sliderEl.querySelector('.button--nav-prev'),zoomCtrl = sliderEl.querySelector('.button--zoom'),// the main content elementcontentEl = document.querySelector('.content'),// close content controlcloseContentCtrl = contentEl.querySelector('button.button--close'),// index of current itemcurrent = 0,// check if an item is "open"isOpen = false,isFirefox = typeof InstallTrigger !== 'undefined',// scale body when zooming into the items,if not Firefox (the performance in Firefox is not very good)bodyScale = isFirefox ? false:3;
	// some helper functions:function scrollX(){
	return window.pageXOffset || docElem.scrollLeft;
}
function scrollY(){
	return window.pageYOffset || docElem.scrollTop;
}
// from http://www.sberry.me/articles/javascript-event-throttling-debouncingfunction throttle(fn,delay){
	var allowSample = true;
	return function(e){
	if (allowSample){
	allowSample = false;
	setTimeout(function(){
	allowSample = true;
}
,delay);
	fn(e);
}
}
;
}
function init(){
	initEvents();
}
// event bindingfunction initEvents(){
	// open itemszoomCtrl.addEventListener('click',function(){
	openItem(items[current]);
}
);
	// close contentcloseContentCtrl.addEventListener('click',closeContent);
	// navigationnavRightCtrl.addEventListener('click',function(){
	navigate('right');
}
);
	navLeftCtrl.addEventListener('click',function(){
	navigate('left');
}
);
	// window resizewindow.addEventListener('resize',throttle(function(ev){
	// reset window sizeswin ={
	width:window.innerWidth,height:window.innerHeight}
;
	// reset transforms for the items (slider items)items.forEach(function(item,pos){
	if( pos === current ) return;
	var el = item.querySelector('.slide__mover');
	dynamics.css(el,{
	translateX:el.offsetWidth}
);
}
);
}
,10));
	// keyboard navigation eventsdocument.addEventListener( 'keydown',function( ev ){
	if( isOpen ) return;
	var keyCode = ev.keyCode || ev.which;
	switch (keyCode){
	case 37:navigate('left');
	break;
	case 39:navigate('right');
	break;
}
}
);
}
// opens one itemfunction openItem(item){
	if( isOpen ) return;
	isOpen = true;
	// the element that will be transformedvar zoomer = item.querySelector('.zoomer');
	// slide screen previewclassie.add(zoomer,'zoomer--active');
	// disallow scrollscrollContainer.addEventListener('scroll',noscroll);
	// apply transformsapplyTransforms(zoomer);
	// also scale the body so it looks the camera moves to the item.if( bodyScale ){
	dynamics.animate(bodyEl,{
	scale:bodyScale}
,{
	type:dynamics.easeInOut,duration:500}
);
}
// after the transition is finished:onEndTransition(zoomer,function(){
	// reset body transformif( bodyScale ){
	dynamics.stop(bodyEl);
	dynamics.css(bodyEl,{
	scale:1}
);
	// fix for safari (allowing fixed children to keep position)bodyEl.style.WebkitTransform = 'none';
	bodyEl.style.transform = 'none';
}
// no scrollingclassie.add(bodyEl,'noscroll');
	classie.add(contentEl,'content--open');
	var contentItem = document.getElementById(item.getAttribute('data-content'))classie.add(contentItem,'content__item--current');
	classie.add(contentItem,'content__item--reset');
	// reset zoomer transform - back to its original position/transform without a transitionclassie.add(zoomer,'zoomer--notrans');
	zoomer.style.WebkitTransform = 'translate3d(0,0,0) scale3d(1,1,1)';
	zoomer.style.transform = 'translate3d(0,0,0) scale3d(1,1,1)';
}
);
}
// closes the item/contentfunction closeContent(){
	var contentItem = contentEl.querySelector('.content__item--current'),zoomer = items[current].querySelector('.zoomer');
	classie.remove(contentEl,'content--open');
	classie.remove(contentItem,'content__item--current');
	classie.remove(bodyEl,'noscroll');
	if( bodyScale ){
	// reset fix for safari (allowing fixed children to keep position)bodyEl.style.WebkitTransform = '';
	bodyEl.style.transform = '';
}
/* fix for safari flickering */
var nobodyscale = true;
	applyTransforms(zoomer,nobodyscale);
	/* fix for safari flickering */
// wait for the inner content to finish the transitiononEndTransition(contentItem,function(ev){
	classie.remove(this,'content__item--reset');
	// reset scrolling permissionlockScroll = false;
	scrollContainer.removeEventListener('scroll',noscroll);
	/* fix for safari flickering */
zoomer.style.WebkitTransform = 'translate3d(0,0,0) scale3d(1,1,1)';
	zoomer.style.transform = 'translate3d(0,0,0) scale3d(1,1,1)';
	/* fix for safari flickering */
// scale up - behind the scenes - the item again (without transition)applyTransforms(zoomer);
	// animate/scale down the itemsetTimeout(function(){
	classie.remove(zoomer,'zoomer--notrans');
	classie.remove(zoomer,'zoomer--active');
	zoomer.style.WebkitTransform = 'translate3d(0,0,0) scale3d(1,1,1)';
	zoomer.style.transform = 'translate3d(0,0,0) scale3d(1,1,1)';
}
,25);
	if( bodyScale ){
	dynamics.css(bodyEl,{
	scale:bodyScale}
);
	dynamics.animate(bodyEl,{
	scale:1}
,{
	type:dynamics.easeInOut,duration:500}
);
}
isOpen = false;
}
);
}
// applies the necessary transform value to scale the item upfunction applyTransforms(el,nobodyscale){
	// zoomer area and scale valuevar zoomerArea = el.querySelector('.zoomer__area'),zoomerAreaSize ={
	width:zoomerArea.offsetWidth,height:zoomerArea.offsetHeight}
,zoomerOffset = zoomerArea.getBoundingClientRect(),scaleVal = zoomerAreaSize.width/zoomerAreaSize.height < win.width/win.height ? win.width/zoomerAreaSize.width:win.height/zoomerAreaSize.height;
	if( bodyScale && !nobodyscale ){
	scaleVal /= bodyScale;
}
// apply transformel.style.WebkitTransform = 'translate3d(' + Number(win.width/2 - (zoomerOffset.left+zoomerAreaSize.width/2)) + 'px,' + Number(win.height/2 - (zoomerOffset.top+zoomerAreaSize.height/2)) + 'px,0) scale3d(' + scaleVal + ',' + scaleVal + ',1)';
	el.style.transform = 'translate3d(' + Number(win.width/2 - (zoomerOffset.left+zoomerAreaSize.width/2)) + 'px,' + Number(win.height/2 - (zoomerOffset.top+zoomerAreaSize.height/2)) + 'px,0) scale3d(' + scaleVal + ',' + scaleVal + ',1)';
}
// navigate the sliderfunction navigate(dir){
	var itemCurrent = items[current],currentEl = itemCurrent.querySelector('.slide__mover'),currentTitleEl = itemCurrent.querySelector('.slide__title');
	// update new current valueif( dir === 'right' ){
	current = current < itemsTotal-1 ? current + 1:0;
}
else{
	current = current > 0 ? current - 1:itemsTotal-1;
}
var itemNext = items[current],nextEl = itemNext.querySelector('.slide__mover'),nextTitleEl = itemNext.querySelector('.slide__title');
	// animate the current element outdynamics.animate(currentEl,{
	opacity:0,translateX:dir === 'right' ? -1*currentEl.offsetWidth/2:currentEl.offsetWidth/2,rotateZ:dir === 'right' ? -10:10}
,{
	type:dynamics.spring,duration:2000,friction:600,complete:function(){
	dynamics.css(itemCurrent,{
	opacity:0,visibility:'hidden'}
);
}
}
);
	// animate the current title outdynamics.animate(currentTitleEl,{
	translateX:dir === 'right' ? -250:250,opacity:0}
,{
	type:dynamics.bezier,points:[{
	"x":0,"y":0,"cp":[{
	"x":0.2,"y":1}
]}
,{
	"x":1,"y":1,"cp":[{
	"x":0.3,"y":1}
]}
],duration:450}
);
	// set the right properties for the next element to come indynamics.css(itemNext,{
	opacity:1,visibility:'visible'}
);
	dynamics.css(nextEl,{
	opacity:0,translateX:dir === 'right' ? nextEl.offsetWidth/2:-1*nextEl.offsetWidth/2,rotateZ:dir === 'right' ? 10:-10}
);
	// animate the next element indynamics.animate(nextEl,{
	opacity:1,translateX:0}
,{
	type:dynamics.spring,duration:2000,friction:600,complete:function(){
	items.forEach(function(item){
	classie.remove(item,'slide--current');
}
);
	classie.add(itemNext,'slide--current');
}
}
);
	// set the right properties for the next title to come indynamics.css(nextTitleEl,{
	translateX:dir === 'right' ? 250:-250,opacity:0}
);
	// animate the next title indynamics.animate(nextTitleEl,{
	translateX:0,opacity:1}
,{
	type:dynamics.bezier,points:[{
	"x":0,"y":0,"cp":[{
	"x":0.2,"y":1}
]}
,{
	"x":1,"y":1,"cp":[{
	"x":0.3,"y":1}
]}
],duration:650}
);
}
// disallow scrolling (on the scrollContainer)function noscroll(){
	if(!lockScroll){
	lockScroll = true;
	xscroll = scrollContainer.scrollLeft;
	yscroll = scrollContainer.scrollTop;
}
scrollContainer.scrollTop = yscroll;
	scrollContainer.scrollLeft = xscroll;
}
init();
}
)(window);
	

CSS代码(demo.css):

/* General Blueprint Style */
@import url(http://fonts.googleapis.com/css?family=Lato:400,700);@font-face{font-family:'bpicons';font-weight:normal;font-style:normal;src:url('../fonts/bpicons/bpicons.eot');src:url('../fonts/bpicons/bpicons.eot?#iefix') format('embedded-opentype'),url('../fonts/bpicons/bpicons.woff') format('woff'),url('../fonts/bpicons/bpicons.ttf') format('truetype'),url('../fonts/bpicons/bpicons.svg#bpicons') format('svg');}
/* Made with http://icomoon.io/ */
/* Resets */
*,*:after,*:before{box-sizing:border-box;}
html{overflow-y:scroll;}
body,html{font-size:100%;margin:0;padding:0;height:100%;}
/* Helper classes */
.cf:before,.cf:after{content:' ';display:table;}
.cf:after{clear:both;}
.hidden{position:absolute;opacity:0;pointer-events:none;}
/* Main styles */
body{font-family:"Avenir",'Helvetica Neue','Lato','Segoe UI',Helvetica,Arial,sans-serif;color:#CECECE;background:#222125;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
a{text-decoration:none;color:#5C5EDC;outline:none;}
a:focus{color:#ddd;}
a:hover{color:#fff;}
/* Blueprint header */
.bp-header{margin:0 auto;padding:3em 3em 0;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}
.bp-header h1{font-size:2.125em;font-weight:400;line-height:1.3;margin:0 0 .6em 0;}
.bp-header h1 > span{font-size:50%;display:block;color:#4D4D5A;}
.bp-header > span{width:100%;font-weight:700;font-size:0.85em;color:#5C5EDC;position:relative;z-index:100;display:block;padding:0 0 .6em .1em;letter-spacing:.5em;text-transform:uppercase;}
.bp-header > span span:after{font-size:50%;font-size:75%;position:relative;top:-8px;left:-12px;width:30px;height:30px;cursor:help;}
.bp-header > span span:hover:before{content:attr(data-content);font-size:110%;font-weight:700;line-height:1.2;max-width:500px;position:absolute;left:auto;margin-left:4px;padding:.8em 1em;text-align:left;text-indent:0;letter-spacing:0;text-transform:none;color:#fff;background:#5C5EDC;}
.bp-header nav{position:relative;z-index:100;margin:-2em 0 0 auto;}
.bp-header nav a{position:relative;display:inline-block;width:2.5em;height:2.5em;margin:0 .1em;text-align:left;border-radius:50%;}
.bp-header nav a > span{display:none;}
.bp-header nav a:hover:before{content:attr(data-info);color:#595A5F;font-weight:bold;font-size:0.85em;position:absolute;top:120%;right:0;width:600%;text-align:right;pointer-events:none;}
.bp-header nav a:hover{background:#5C5EDC;}
.bp-icon:after{font-family:'bpicons';font-weight:normal;font-style:normal;font-variant:normal;text-align:center;text-transform:none;color:#5C5EDC;speak:none;-webkit-font-smoothing:antialiased;}
.bp-header nav .bp-icon:after{line-height:2.4;position:absolute;top:0;left:0;width:100%;height:100%;text-indent:0;}
.bp-header nav a:hover:after{color:#fff;}
.bp-icon-next:after{content:'\e000';}
.bp-icon-drop:after{content:'\e001';}
.bp-icon-archive:after{content:'\e002';}
.bp-icon-about:after{content:'\e003';}
.bp-icon-prev:after{content:'\e004';}
@media screen and (max-width:40em){.bp-header{text-align:center;}
.bp-header > span{text-indent:30px;}
.bp-header > span span:hover:before{right:0px;}
.bp-header h1{font-size:1.8em;width:100%;}
.bp-header nav{margin:0;width:100%;}
}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
557.17 KB
html5特效
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章