HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例


哈,首先感谢下w3cfuns的老师,嗯~

好了,这次给发夹分享一个CSS3+Javascript VCD包装盒个性幻灯片的一个案例。

效果图:
 
图片切换是不是很个性,效果也很不错,大家可以将其使用到自己的网站上。

先看下html:

复制代码
代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta content="text/html;charset=utf-8" http-equiv="content-type">
<link type="text/css" href="reset.css" rel="stylesheet">
<link type="text/css" href="main.css" rel="stylesheet">
<script type="text/javascript" src="../../jquery-1.8.3.js"></script>
<script type="text/javascript" src="vcd.js"></script>
<script type="text/javascript">
$(function ()
{
vcd.init();
vcd.autoPlay();
});
</script>
</head>
<body>
<div id="vcd">
<i id="cd"></i>
<ul>
<li class="active"><a><img alt="超人归来" src="ad/1.jpg"/></a></li>
<li><a><img alt="超凡蜘蛛侠" src="ad/2.jpg"/></a></li>
<li><a><img alt="黑暗骑士:蝙蝠侠" src="ad/3.jpg"/></a></li>
<li><a><img alt="美国队长" src="ad/4.jpg"/></a></li>
<li><a><img alt="雷神托儿" src="ad/5.jpg"/></a></li>
<li><a><img alt="金刚狼" src="ad/6.jpg"/></a></li>
</ul>
<a id="wrapPager" title="超人归来" target="_blank"></a>
<div id="indexBar">
<a class="active">0</a>
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
</div>
</div>

</body>
</html>

可以看到div#vcd是最外层容器,给它设置了一个背景;ul li 分别设置图片元素;i#cd设置背景为光盘,然后设置显示位置;div#indexBar中显示图片的索引,供点击。

CSS:

复制代码
代码如下:

#vcd, #vcd ul, #vcd #wrapPager
{
width: 200px;
height: 272px;
}
#vcd, #vcd ul, #vcd #wrapPager, #cd
{
background: url("images/disk.png") no-repeat 0 0;
}
#vcd
{
position: relative;
margin: 20px auto 0;
}
#vcd ul, #vcd #wrapPager, #cd
{
position: absolute;
}
#vcd ul
{
background-position: -263px 3px;
}
#vcd ul li, #vcd ul li a, #vcd ul li a img
{
display: block;
width: 178px;
height: 264px;
overflow: hidden;
}
#vcd ul li
{
top: 5px;
left: 2px;
opacity: 0;
/*visibility: hidden;*/
-webkit-transition: opacity linear .6s;
/*-webkit-transition: visibility linear .6s;*/
-moz-transition: opacity linear .6s;
-ms-transition: opacity linear .6s;
transition: opacity linear .6s;
position: absolute;
}
#vcd ul li.active
{
opacity: 1;
/*visibility: visible;*/
}
#vcd #cd
{
top: 64px;
left: 78px;
width: 146px;
height: 146px;
background-position: -510px 0;
-webkit-transition: left ease .4s, -webkit-transform ease 1.2s .44s;
-moz-transition: left ease .4s, -moz-transform ease 1.2s .44s;
-ms-transition: left ease .4s, -ms-transform ease 1.2s .44s;
transition: left ease .4s, transform ease 1.2s .44s;
}
#vcd #cd.switch
{
left: 120px;
-webkit-transform: rotate(2520deg);
-moz-transform: rotate(2520deg);
-ms-transform: rotate(2520deg);
transform: rotate(2520deg);
}
#vcd #wrapPager
{
display: block;
left: 0;
top: 2px;
}
#vcd #indexBar
{
top: 235px;
left: 25px;
text-align: center;
overflow: hidden;
opacity: 0;
visibility: hidden;
-webkit-transition: opacity linear .6s;
-moz-transition: opacity linear .6s;
-ms-transition: opacity linear .6s;
transition: opacity linear .6s;
position: absolute;
}
#vcd:hover #indexBar
{
opacity: 1;
visibility: visible;
}
#vcd #indexBar a
{
display: inline-block;
margin: 0 4px;
height: 0;
width: 0;
border: 4px #9f9f9f solid;
border-radius: 100%;
text-indent: -200px;
overflow: hidden;
}
#vcd #indexBar a:hover, #vcd #indexBar a.active
{
width: 4px;
height: 4px;
border-color: #05c7fe;
border-width: 2px;
}

对于CSS大家可以照着敲一下,对于位置的布局主要就是依赖position:relative和position:absolute;然后大家会发现使用CSS3的过渡和变形:transition和transform 我简单提一下:

1、transition : left 1s ease 0s ;

参数1:需要过渡效果的属性,可以为单个属性:width,left等,也可以设置为all。

参数2:过渡的持续时间

参数3:过渡的速率动画,这个大家有兴趣可以查查,就是先慢后快,匀速之类的。

参数4:过渡开始的延时时间

transition也支持如下写法:

transition-property:border, color , text-shadow ;

transition-duration:2s , 3s , 3s ;

2、transform支持几种变形

transform:scale(0.5) 缩放

transform:rotate(90deg)旋转90度

transform:skew(10deg 2deg)斜切,矩形转化为平行四边形

transform:matrix() 这个矩阵变形 http://www.useragentman.com/matrix/ 这个网站提供在线设计矩阵

transform:translate(40px 20px)平移

例外提供了:transform-origin:20% 20%;用于修改变形效果的起点,默认为重点

当然我们这个例子用的是旋转,也就不用修改变形效果起点了。


最后是JS:

复制代码
代码如下:

/**
* Created with JetBrains WebStorm.
* User: zhy
* Date: 14-6-15
* Time: 下午6:26
* To change this template use File | Settings | File Templates.
*/
var vcd = {
/**
* 常量
*/
ID_VCD: "vcd",
ID_INDEXBAR: "indexBar",
ID_CD: "cd",
CLASS_ACTIVE: "active",
CLASS_CD_SWITCH: "switch",
currentIndex: 0,
isRunning: false,
timer: null,
init: function ()
{
/**
* 初始化数据与事件
*/
vcd.vcd = $("#" + vcd.ID_VCD);
vcd.cd = $("#" + vcd.ID_CD);
vcd.imgs = $("li", vcd.vcd);
vcd.indexBar = $("#" + vcd.ID_INDEXBAR);
vcd.vcd.mouseover(function (event)
{
clearInterval(vcd.timer);
});
vcd.vcd.mouseout(function ()
{
vcd.autoPlay();
})
;
$("a", vcd.indexBar).click(vcd.dotClick);
},
/**
* 按钮点击切换
* @param event
*/
dotClick: function (event)
{
//如果当前动画还在运行,则直接返回
if (vcd.isRunning)return;
vcd.isRunning = true;
$("a", vcd.indexBar).removeClass(vcd.CLASS_ACTIVE);
$(this).addClass(vcd.CLASS_ACTIVE);
vcd.currentIndex = $(this).text();
vcd.cd.addClass(vcd.CLASS_CD_SWITCH);
setTimeout(vcd.resetDotClick, 1500);
event.preventDefault();//阻止a的默认跳转页面
},
/**
* 当cd动画结束后,更新图片
*/
resetDotClick: function ()
{
vcd.cd.removeClass(vcd.CLASS_CD_SWITCH);
vcd.imgs.removeClass(vcd.CLASS_ACTIVE);
vcd.imgs.eq(vcd.currentIndex).addClass(vcd.CLASS_ACTIVE);
vcd.isRunning = false;
},
autoClick: function ()
{
var as = $("a", vcd.indexBar);
vcd.currentIndex++;
if (vcd.currentIndex == as.length)
{
vcd.currentIndex = 0;
}
as.removeClass(vcd.CLASS_ACTIVE);
as.eq(vcd.currentIndex).addClass(vcd.CLASS_ACTIVE);
vcd.cd.addClass(vcd.CLASS_CD_SWITCH);
setTimeout(vcd.resetDotClick, 1500);
},
/**
* 自动播放
*/
autoPlay: function ()
{
vcd.timer = setInterval(function ()
{
vcd.autoClick();
}, 3000);
}
}
;

单例的写法,定义了一个对象,然后用户通过vcd.init() ;vsd.autoPlay()调用、

复制代码
代码如下:

<script type="text/javascript">
$(function ()
{
vcd.init();
vcd.autoPlay();
});
</script>

重置的css我就不贴了,下面我把源码提供给大家下载。
点击下载源码



相关阅读:
jQuery遍历页面所有CheckBox查看是否被选中的方法
win10右下角的图标隐藏了怎么设置全部显示?
javascript 操作符(~、&、|、^、<<、>>)使用案例
常用的Javascript数据验证插件
纯CSS实现设置半个字符的样式
基于第一个PhoneGap(cordova)的应用详解
javascript计算当月剩余天数(天数计算器)示例代码
Android 实现旋转木马的音乐效果
解决Windows 7下安装Oracle 11g相关问题的方法
C#实现两个窗体之间数值传送的方法
jquery实现input输入框实时输入触发事件代码
win10系统如何快速清理垃圾?win10清理系统垃圾方法介绍
C++设计模式编程中的观察者模式使用示例
jquery对dom节点的操作【推荐】
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 塔源-江桥 宜昌东-达州 马莲河-天桥岭 兴隆镇-兴莲 绥中-达州 光山-滦县 虎门-祁东 韶关-宜昌东 唐山-白城 平顶山西-宣威 温岭-镇江 大孤山-广宁寺 泉阳-火炬沟 商丘-唐山 泰州-恩施 兰岗-东京城 苏州-漳浦 安康-子长 阳泉北-晋中 开封-鄯善 鄯善-柳州 株洲-五莲 宣城-巩义 宝鸡-深圳西 柳州-宾阳 三明北-沈阳北 镇江-太平川 南城司-南观村 红花沟-广德号 哈达阳-苏家屯 武昌-兴宁 安口窑-同心 太平镇-向阳川 宁陵县-南阳 太平川-康庄 普洱渡-岔河 保定-惠农 弋阳-金华 太原东-灵丘 砀山南-莱阳 武昌-邵东 宜春-新沂 七龙星-九龙塘 哈尔巴岭-小姑家 潢川-甘谷 凯里-新晃 天镇-瑞昌 中兴-铁岭 黑水-高林屯 宝鸡-武功 厦门-鄂州 固始-米脂 小西庄-良各庄 西安-巩义 天水-邵阳 深圳东-衡阳 老城镇-三亚 凤凰城-乌奴耳 襄阳-安顺 襄河-富裕 张家口南-瓦房店 厦门北-鳌江 温州-利川 葫芦岛北-北戴河 松江河-石桥子 灵宝-亳州 北京-小榆树 桑根达来-鄯善 郑州东-淮南东 苍坪-二道桥 莒南-磁窑 东京城-宝林 浩良河-兴莲 成都-徽县 赤峰-大庆西 靖边-绥中 白河东-徐州 兴安北-赤壁北 郓城-宣威 金昌-正镶白旗 我想问的是从中山车站坐车到宾阳需要票价多少钱啊
海口美兰机场到桂林洋校区怎么走?
常德怎么到长沙机场
请帮我查一下
从上海火车站下车到南通汽车站怎么走应该怎么走
杭州公交K204"武林广场"一站具体在哪坐?
从深圳梅林关去湛江霞山要多久要票价多少钱再从霞山去云南大
外地人应该从柳州带什么特产回去
武汉到长沙的问题.
从上海到乐安流坑怎么坐车请知道的告知
从广州驾车到中山黄圃马新中学附近怎么坐车方便
井岸有什么地方好玩?
我从北京去成都怎么坐车最近
广东省清远市英德区和平路什么快递到
烟台客车汽车总站附近哪个宾馆各方面比较合适
上海市东方路1215号靠近什么路? 从桂林路漕宝路这里有什么公
从上海坐列车火车到昆明大概要多久?要多少钱.
温州的新南汽车站怎么去大罗山
大连市金州区先进街道怎么坐车
苏州有那些生产客车汽车内饰件的企业(塑料产品)
我国最长的楹联是什么
请问汕头能直飞到西昌么..如果能,机票票价多少钱如果不能是不
从宿迁的沭阳到镇江的汽车客车大概是几点的?多少钱哪?哪里可以查询?
从广州列车火车站到花都区秀全西路怎么去
丁丁网 上海 从龙华到新华路定西路乘什么车便捷谢谢
请问从沈阳(列车火车汽车都行)到吉林省松原市乌兰塔拉乡新立围
大连到杏树屯火车列车什么时候有啊
我在武汉大学读书,户口没签过来,想学车,要办居住证,需要
坐飞机从潍坊到北京多少小时
保定到霸州在哪里坐车啊?谢谢

Copyright © 2016 phpStudy |