返回列表 发新帖

html5 css3实现一个精美vcd包装盒个性幻灯片案例

257.3k 8
swmozowtfl 发表于 2015-7-10 22:25:26|湖北 | 查看全部 阅读模式
先看下html:
) ?' w& b/ T/ j. _2 L代码如下:6 w$ |1 i5 D! B+ \! p) G
<!doctype html public -//w3c//dtd html 4.01 transitional//en $ {0 N) \. j8 u% V- Y0 s6 }
>
! g2 k( s* ?9 Y9 ]<html>
; `/ q$ Q% i) L<head> 3 H2 T4 H: b3 J+ M: c
<title></title>
& u  p# T/ I. L# t+ y$ X+ U<meta content=text/html;charset=utf-8 http-equiv=content-type>
) s  l+ i/ K( \5 j/ @( I3 J<link type=text/css href=reset.css rel=stylesheet> 8 ^" V% ^% E* t  `: I8 M3 [4 O* b
<link type=text/css href=main.css rel=stylesheet>
4 `( R" T$ Y5 t; E# L<script type=text/javascript src=../../jquery-1.8.3.js></script> : b) ]# B/ \: F; r% N
<script type=text/javascript src=vcd.js></script>
2 g6 B) Y$ A6 b  I4 A/ h<script type=text/javascript> . f; f' ?/ n/ \7 ]. p( r8 n) L0 `
$(function ()
' Z$ b) v$ {9 [% q) @+ ?{ # a4 a( {* C; O3 e9 S1 \. U! k% ^
vcd.init();
" ^: _5 c5 N9 j; w2 N! Vvcd.autoplay(); ! P" I  e3 s' k3 p3 J( k
}); ( E* Y4 x. C4 V
</script>
( K/ \5 g0 l7 K: J4 ~9 h, q# s</head>
$ z* A- @6 c8 s& g<body>
3 p9 ~" N" d9 l+ j0 O<div id=vcd>
7 U) d, y% |1 x( @  [/ a<i id=cd></i> 5 ], o6 Z) o3 x+ j7 ^1 e' `2 R
<ul>
7 i/ W$ O+ o$ S0 h9 Q9 i<li class=active><a><img alt=超人归来 src=ad/1.jpg/></a></li>
( O8 @5 I* g7 x6 c8 p+ I<li><a><img alt=超凡蜘蛛侠 src=ad/2.jpg/></a></li>
4 A% n2 V- u% [5 M<li><a><img alt=黑暗骑士:蝙蝠侠 src=ad/3.jpg/></a></li> 4 N3 u) {1 A6 R* \( [
<li><a><img alt=美国队长 src=ad/4.jpg/></a></li>
! D6 e* @% ^5 y$ K, X<li><a><img alt=雷神托儿 src=ad/5.jpg/></a></li>
* w7 F4 H2 F2 ]- T) ?<li><a><img alt=金刚狼 src=ad/6.jpg/></a></li>
4 ?- N3 C" h" T</ul> ; s! f. p0 \6 H6 @
<a id=wrappager title=超人归来 target=_blank></a> ( W) Z! F* _+ d" W3 q
<div id=indexbar>
( e  i& f9 ?9 P6 W4 p. Z, ~' c<a class=active>0</a> 8 C# @) b0 j9 W& S& o
<a href=#>1</a> 5 u" n% N6 F: _0 {1 P
<a href=#>2</a> - U! T& ]3 m( `' S+ c2 C
<a href=#>3</a>
7 {+ S! K, R7 o9 U8 p9 Z<a href=#>4</a> 5 E2 X; U- m4 m+ C: E- x
<a href=#>5</a>
9 _+ ~8 k6 |2 n5 c1 c- d  N</div>
% W! t1 q0 ^! C</div> ; l6 w4 C" T  h8 Q* f) N1 I' H
</body>
1 ]) I* B. @1 d0 w</html>
. d& A4 ]$ _8 j1 q可以看到div#vcd是最外层容器,给它设置了一个背景;ul li 分别设置图片元素;i#cd设置背景为光盘,然后设置显示位置;div#indexbar中显示图片的索引,供点击。
' I6 z6 O. z+ Ncss:
! g7 i# b3 I! r. l/ l3 Q代码如下:
! J! \* }0 ~+ f) {# ?* N
#vcd, #vcd ul, #vcd #wrappager
3 G% s1 {/ H- n{ % _. }: S3 r6 e2 {
width: 200px;
1 l: e9 y# N# ?, Z% wheight: 272px; 0 U1 o8 e5 R; a& x" o% W* V$ y
}
. m) k+ g- t& b5 `5 l! d#vcd, #vcd ul, #vcd #wrappager, #cd # Y8 ^3 m( e+ p  h# {' r  Y0 m
{ 3 \+ l* `& e1 Z8 h3 W
background: url(images/disk.png) no-repeat 0 0;
0 U( H+ `1 B7 M' p, |  \& G6 h8 }}
5 U8 E" ?- ~. l#vcd / M8 G$ C" l% f+ M
{ ' h! t2 x$ x9 L; M+ G
position: relative;
& I& F( n3 d, Z( R' L( s5 M, C" `margin: 20px auto 0; : p. w! u6 |2 L  S0 e) @
} 7 e, b4 j" i4 r4 Y* T: i# \/ h2 s
#vcd ul, #vcd #wrappager, #cd
- J0 a: I" c4 z6 ?0 L" D{
2 L' k; c/ ~# p  ?8 l6 aposition: absolute; % ?/ C- |; L7 ?* k& d. F- i8 F
}
- D8 \: x# h5 Y5 ~4 O#vcd ul 4 f4 A4 I4 K2 `" P3 A
{
" A4 [$ M9 y: g* ubackground-position: -263px 3px; ; q. l& [$ ?, A+ B- J
} " ~& ^2 e2 f4 y; G
#vcd ul li, #vcd ul li a, #vcd ul li a img % n- k" [' c1 n
{
8 {; R  I0 s9 U+ udisplay: block;
$ D; H% h- ]8 c$ b/ U" r' iwidth: 178px; " i2 C7 s! J. |/ s3 q: q- w
height: 264px;
$ k, c- M: G/ n2 s5 s$ P( U! [* Y& m( boverflow: hidden;
! X+ g+ ?' h3 T$ P5 C}
' O* Y, ~8 u, K3 ?+ }9 P#vcd ul li
" B' ^" s# l$ {, R) E+ Y2 \{ + J/ I  r5 u0 J% Q
top: 5px; 3 N) X( p3 ?( j, U, \" F
left: 2px; " V4 J' A/ N/ c4 d# @" m' `5 l
opacity: 0;
3 r) o+ L' Z/ C/*visibility: hidden;*/
5 {+ r- ~" P! T. `-webkit-transition: opacity linear .6s;
! n  W0 w; C. T/*-webkit-transition: visibility linear .6s;*/
" i: s$ n, l" p-moz-transition: opacity linear .6s; * `: W/ t- o; [: t6 ?7 d
-ms-transition: opacity linear .6s; ; T- K9 t* x: F; r
transition: opacity linear .6s;
9 e" c( X) c* b$ F2 E* `3 F* rposition: absolute; / m9 j1 g( M9 B9 ~0 l2 k' G: a9 m* d0 y
} ; q$ g' _; t% |2 P  b0 L7 p4 [
#vcd ul li.active $ W1 H$ i- D  P. }) [- f
{
9 ?% n" F# p6 E) Z0 H4 x; @opacity: 1;
2 o2 |- r: |; }* k' n- Y" \; f/*visibility: visible;*/ 1 b2 K) |5 G6 C, {% k8 Z
}
5 P7 A5 f' o2 Q#vcd #cd
! G9 z3 t4 k5 A: Y- J9 R{
/ H. t" V. r+ Q5 ytop: 64px;
( ~8 M. t/ T. k$ Vleft: 78px; 7 Q" Y+ M8 {8 z3 ~/ U/ f: G
width: 146px;
; j! i0 [/ [* T+ I0 Oheight: 146px; 3 G2 H: i. S/ [0 @1 o
background-position: -510px 0;
; ~0 h4 B: x  W  U5 g! r$ E-webkit-transition: left ease .4s, -webkit-transform ease 1.2s .44s;
1 u& B, {+ H* b0 I-moz-transition: left ease .4s, -moz-transform ease 1.2s .44s;
; x; d+ J. D3 K$ }* W-ms-transition: left ease .4s, -ms-transform ease 1.2s .44s; 5 r3 U8 t8 ^4 ~4 U5 Q! T
transition: left ease .4s, transform ease 1.2s .44s; . n3 s( _, H6 y
} ) G* O) i9 W" y$ X
#vcd #cd.switch % ]* S* e! G) r0 y/ s
{
0 _7 `3 o) z: L. E& H2 j8 A7 Y" aleft: 120px; ) K0 p- I& Y* X- Y) Q9 }7 g6 b6 g
-webkit-transform: rotate(2520deg);
/ z  e3 ^$ I. Z5 I/ E-moz-transform: rotate(2520deg);
* m: r4 i/ S. l. y-ms-transform: rotate(2520deg);
) e* f. c4 L7 S' Itransform: rotate(2520deg); 9 x8 [. Q$ O& U0 |
}
1 B( n2 T8 O, @, d6 I3 J#vcd #wrappager ! W1 r* h' n( R2 C$ `
{
1 ~6 O1 H0 Q/ }display: block;
2 `& P$ D8 L7 ?0 h* C- ^) Y! Sleft: 0;   C% {3 u* |3 C+ z
top: 2px;
' Y8 H5 g/ X$ H& |- ~1 U}
$ F* D  Q) `3 o2 e) ?8 a7 P: {#vcd #indexbar ' y4 `, g6 M1 C0 }
{ 0 x: i+ o2 G: R$ W9 }+ ^  E' i
top: 235px;
, T  z: m: y6 T- Gleft: 25px; 9 \0 X$ {5 y6 d% |, [
text-align: center;
  O1 h! K8 w  y8 foverflow: hidden;
* V: Q; U1 K% topacity: 0;
& q! o+ {+ m4 m% z6 G# qvisibility: hidden;
: m2 L3 [+ R+ a9 \/ m0 H1 L-webkit-transition: opacity linear .6s;
8 w& b6 m- y: Q-moz-transition: opacity linear .6s; & H9 `+ f; _3 T1 x
-ms-transition: opacity linear .6s;
- c  F5 t2 J# `  Xtransition: opacity linear .6s; ) Q' p, _" {7 M# e
position: absolute; . G8 R8 x! ]3 _" @
}
$ L( |+ a  O0 B4 p/ n  j#vcd:hover #indexbar
+ A' ^$ X( L  e9 w- c{
1 f& p; c, U/ ?$ V# S$ popacity: 1; : Z( S1 @# M% D& G# ?0 e' w
visibility: visible;
8 S- V" m# K0 @) Q- e}
* H( [$ w. b7 T3 e9 s! j$ J#vcd #indexbar a % [' j- q3 \/ I( O
{   F0 P4 b0 Y2 E4 l# [
display: inline-block;
" D! u/ m) X3 k/ k* g$ R( D# K- v/ Rmargin: 0 4px;
1 n/ s. X* m, _. `! k8 E4 rheight: 0;
7 s2 J1 j1 ^( c5 }$ b7 u( R4 @. X3 X) {width: 0;
' z# e7 B" j# S, O- R' Bborder: 4px #9f9f9f solid;
3 n' t; J  V0 aborder-radius: 100%; ' ^! @4 Q( ?9 b
text-indent: -200px;
0 T9 a0 X7 Y8 C, e4 Q# zoverflow: hidden; 6 @5 l3 R3 C0 I1 J( k
} ; t, O/ Z( M0 J( c* l! e* Y' ]2 p; t
#vcd #indexbar a:hover, #vcd #indexbar a.active
# f' K* a7 Z' S9 p8 Z# E! _{
# n1 I+ G; W  _: y7 zwidth: 4px;
! l0 C4 g1 T+ l& U; Rheight: 4px; & ]  [- M% {4 m' T/ k& x; j0 D" A
border-color: #05c7fe; ' L; z) c. F$ u2 K1 d5 z5 A' b5 N
border-width: 2px; ( i" b- \, N& T* o  e4 B
}
3 p6 h$ p5 c6 w+ b) ]8 z4 B对于css大家可以照着敲一下,对于位置的布局主要就是依赖position:relative和position:absolute;然后大家会发现使用css3的过渡和变形:transition和transform 我简单提一下: 0 ?" I. I+ t% ]* }  ~5 M
1、transition : left 1s ease 0s ; / x  O. B( e; V( H; \+ @1 ]( n* s6 h
参数1:需要过渡效果的属性,可以为单个属性:width,left等,也可以设置为all。 - L" [/ w5 Y* y7 O
参数2:过渡的持续时间 / x0 V- f! M. K' ?7 a
参数3:过渡的速率动画,这个大家有兴趣可以查查,就是先慢后快,匀速之类的。
) Z3 D+ }. d4 B  R5 }9 S参数4:过渡开始的延时时间 8 Z/ ^, ?4 q- _1 S! I; }
transition也支持如下写法:
& r3 M7 z# L  @# A$ u0 etransition-property:border, color , text-shadow ; ' m! g; S' V7 G% Y% G; j
transition-duration:2s , 3s , 3s ; " A2 r: G2 O& ^- P# C
2、transform支持几种变形 : a- k/ n2 \8 f1 ^5 n" T; T" J! z* E2 g4 Q
transform:scale(0.5) 缩放 8 v9 ?( X5 _" h4 g  [: e
transform:rotate(90deg)旋转90度
( j8 [/ S, C9 ]9 v" Gtransform:skew(10deg 2deg)斜切,矩形转化为平行四边形 ; U$ F, w5 H  S+ R/ [
transform:matrix() 这个矩阵变形 这个网站提供在线设计矩阵 # Y. p' Q0 ]5 Q2 l. ~& p
transform:translate(40px 20px)平移 # m) ?, E2 x2 l* e4 x6 f
例外提供了:transform-origin:20% 20%;用于修改变形效果的起点,默认为重点 + d! J# H4 u- E5 m
当然我们这个例子用的是旋转,也就不用修改变形效果起点了。 * C) ]: P/ U# |3 T+ @6 Z
# D( E% u; ]9 x, G" [
最后是js: 1 E* Y& L+ i4 j5 K: P# ]
代码如下:
# }( d6 x/ W" e
/** : q3 @. y- O) d: K  G
* created with jetbrains webstorm. 0 @) N( Y3 J& @7 A# b
* user: zhy
/ I( D) @5 S5 o: T2 v- K" z9 |! l* date: 14-6-15 4 |6 \/ Q$ ?" D$ q; A9 g$ x' m4 R
* time: 下午6:26 - N4 U; |1 t! p( z
* to change this template use file | settings | file templates.
5 _& r; f/ \8 G, c( k*/ , P) S) B( I! W$ W
var vcd = { * I, R* a# S. e6 L1 K( l
/** 1 ^1 T+ e! q, P
* 常量
; j$ T8 S  y  W2 {: Y" S& e( _0 e*/ # H$ M3 V# J) @: c3 W' B
id_vcd: vcd,
2 n; {: }" N% ]* f* B: R$ `# Gid_indexbar: indexbar, 0 M  o9 ?2 h/ B! L8 B' A
id_cd: cd, - [; Z; a4 q0 I- Y/ x. q6 N
class_active: active,
3 ~( B% ?. ]9 S4 wclass_cd_switch: switch,
4 P1 M  K: B1 K' K9 x/ Gcurrentindex: 0,
0 {7 |, W) k4 t. A, Z2 E0 c, i  Gisrunning: false,
) `9 p5 Z: v8 \9 Rtimer: null, 9 ^2 ~% l! n$ Q, ^8 u/ I8 \
init: function ()
; A% z: [& x) H' S{
" l& r0 ]2 n) ]$ p+ v/**
4 y: z1 Z+ P0 D  A+ a3 V  P/ U* 初始化数据与事件
; R( K8 w+ X/ y1 B; x) F*/ 7 K- ?7 i$ I& }5 v0 y' ~
vcd.vcd = $(# + vcd.id_vcd); + _& j1 L! R1 o% b
vcd.cd = $(# + vcd.id_cd); ( D* U! X1 x' h5 I+ R# p- I/ {
vcd.imgs = $(li, vcd.vcd); ) q  S, A3 }% @9 _* u
vcd.indexbar = $(# + vcd.id_indexbar);
) e6 S0 Y5 E* C: q0 T8 h( N4 Rvcd.vcd.mouseover(function (event) : Z: o3 ^5 D7 ~! D
{ * H* l/ b! s- l
clearinterval(vcd.timer);
& c' v2 D: X6 @}); 2 Z! y+ ?: \# I- J, i7 }5 v; z
vcd.vcd.mouseout(function ()
, a; ~4 R( A1 H  @{ ) a- Z8 h5 C2 R9 J1 D8 \5 u) G
vcd.autoplay(); ) }( U9 }$ q: D# ~& a
})   D8 t' c3 ^5 @5 I
;
) G# o7 u1 N. r) M7 y  ?: O( C! _$(a, vcd.indexbar).click(vcd.dotclick); . }& G! w1 o% d% H/ q( P
}, 3 b# k( Q- {) \' {
/**
- I5 V  S$ ~% j! N* 按钮点击切换
& x3 F& L8 c4 A4 Z* @param event . F5 v) T+ _, z
*/ 1 E$ b0 ]/ v/ E- g! H4 Z; v8 v1 r
dotclick: function (event) / C1 _4 }, \" y3 O
{
2 |+ m4 `& e1 ]7 c  C* O5 V3 S4 V//如果当前动画还在运行,则直接返回 3 R- u& \* I' f$ W# i- Y
if (vcd.isrunning)return; $ l8 o) L. }0 E) b* n
vcd.isrunning = true; 4 u7 P. |- _/ W: f7 s
$(a, vcd.indexbar).removeclass(vcd.class_active); 6 V8 r" e/ N% \: G8 N
$(this).addclass(vcd.class_active);
$ n# h) Y% F. a+ Jvcd.currentindex = $(this).text();
% ~- u3 u* q. v& `; o4 @1 k  M; [6 avcd.cd.addclass(vcd.class_cd_switch);
4 Z$ @& ?3 @! j# ksettimeout(vcd.resetdotclick, 1500); . g% a. P$ E8 s7 ^
event.preventdefault();//阻止a的默认跳转页面 7 E; O: e$ v  {- s9 `" t
},
: c* s0 L% T$ S. s/**
; h0 a7 _5 f$ z. Z5 e0 ~: D6 W3 E* 当cd动画结束后,更新图片
2 q6 x, }3 h6 s! s; j*/ ! {+ [+ {- a8 g$ T, v8 P
resetdotclick: function () - l: |: f$ l0 g) V2 ?( \! V
{ # m, X# Y/ a, w" E
vcd.cd.removeclass(vcd.class_cd_switch);
$ A* X' Z& I, i0 M* Q6 Yvcd.imgs.removeclass(vcd.class_active);
( ?8 |" m8 }& p6 B% P2 S0 ~vcd.imgs.eq(vcd.currentindex).addclass(vcd.class_active); ; |( W: s4 e, e5 t# l" u  d+ }
vcd.isrunning = false;
6 ~3 K( t) L& ~& k}, . q. t; N+ @/ I
autoclick: function ()
1 d5 o* L" r* V2 q' _7 K& ~) f{
# S" a# z3 w$ b  X+ \- M7 w% Qvar as = $(a, vcd.indexbar);
4 S/ N6 x8 L7 L6 z; i# Mvcd.currentindex++;
$ A+ F; N& P' \. l, i- U- Q+ D9 Bif (vcd.currentindex == as.length) 2 s- g3 x2 O: w* {; B' s
{ ' F/ M: `+ p0 ^+ F& o4 N
vcd.currentindex = 0;
1 x& H& b9 v' S' K4 g}
1 r2 F$ Z, a; das.removeclass(vcd.class_active); , a! m- I, ^0 v6 D- {4 i
as.eq(vcd.currentindex).addclass(vcd.class_active); & w0 u) j- H! L# z. T: n- Q
vcd.cd.addclass(vcd.class_cd_switch);
9 O! V7 t8 j4 U: x; o" Hsettimeout(vcd.resetdotclick, 1500);
6 E, ]" T7 m2 B/ f4 f2 ]9 Q- g},
* V2 W8 b. i& Q3 H, e! K. t$ Q/**
8 \* t: {! s+ U% h! X* 自动播放 1 t  p7 P' I; }2 o% \
*/ 8 \0 o1 \5 I" X" @7 p
autoplay: function () 9 E9 l% j% d" i8 @2 [8 M% S
{ " H0 c9 E! `# m( h% a& n. z) O
vcd.timer = setinterval(function ()
% a. K/ i  g/ f/ a$ x* \  l{ ! G8 y/ m. ]" r- x+ q
vcd.autoclick();
! C; {( [4 }& }4 `$ M}, 3000);
% j7 X+ p+ G+ }4 Y( w$ S}
1 t$ E: H& @1 p- m8 W} 7 {; o+ X4 N0 q9 n. c( h3 }
;
9 n2 S7 M2 U, V/ ~6 _单例的写法,定义了一个对象,然后用户通过vcd.init() ;vsd.autoplay()调用、 " S  }4 C" ^/ T+ m
代码如下:
+ m  I% q0 f% u' A
<script type=text/javascript> 8 l2 q/ |9 _4 o) U
$(function () $ }6 \5 G/ s8 k, k2 I
{   `, _0 b6 s3 a
vcd.init();
. b5 ]! m. i/ v( N" ~+ |vcd.autoplay(); , ^- m  c1 ~5 s2 y2 X/ K% a4 z: {
}); ! v3 r! @/ ^8 b( f' }. V8 c' l
</script>
" B3 R& J+ f) N) ~- z& q# G. R2 D重置的css我就不贴了,下面我把源码提供给大家下载。   k9 J1 S5 c/ B. D6 [5 {  t
# N8 e- N5 s5 h/ L1 D, O
更多网页制作信息请查看: 网页制作

回复|共 8 个

effoggikeftor 发表于 2015-9-12 22:03:28|美国 | 查看全部
k了我一个月的站,刚才site的时候
buingeEvineus 发表于 2015-9-12 22:04:09|美国 | 查看全部
这个程序有没有漏洞啊
Mqokjdvq 发表于 2015-9-12 22:05:02|美国 | 查看全部
女人啊真是那句话~~~无理占三分~~忘记怎么说了 呵呵 ~~你帮我想想
mwxny 发表于 2015-10-22 10:19:51|美国 | 查看全部
看你快沉底了~~~~~~
buingeEvineus 发表于 2015-10-22 10:19:55|西班牙 | 查看全部
极品可以说是让你馨香满腹,三日不绝!!古人说的好:想要作文章,先要学做人。由作者的文章我们也可以揣测出作者定是成长在一个汗牛充栋,文化氛围浓厚而且精神面貌积 极向上的幸福家庭里面。在现在这个物欲横流,亲情冷淡的时代,能够在这样的家庭里
alapScady 发表于 2015-10-22 10:20:57|美国 | 查看全部
楼猪.重量级人物阿.
wwzcdenleclv 发表于 2015-10-22 10:21:03|美国 | 查看全部
对于这种刚发的帖子,我总是毫不犹豫的顶了。如果火了就是个前排,可以混个脸熟,说不定谁好心就给粉了…稳赚不赔;如果沉了就感觉是我弄沉的,很有成就感,还能捞经验。
wwzcdenleclv 发表于 2015-10-22 10:21:04|意大利 | 查看全部
今天没事来逛逛

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表