返回列表 发新帖

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

257.5k 8
swmozowtfl 发表于 2015-7-10 22:25:26|湖北 | 查看全部 阅读模式
先看下html: 2 ]) \& q2 B8 A+ j! E
代码如下:
) j' R6 e. f+ |/ D9 g$ d% |
<!doctype html public -//w3c//dtd html 4.01 transitional//en
8 s% j3 I" W, K4 J> - s( o9 A) |8 d) _1 I
<html>
) @4 m; D; T! r. `<head>
+ W9 k7 M, ]8 {2 l<title></title>
/ G; `9 j, j) K0 {4 m<meta content=text/html;charset=utf-8 http-equiv=content-type> 3 C5 C" O' |, j9 j
<link type=text/css href=reset.css rel=stylesheet> : O8 m5 L( ?. R$ D5 E
<link type=text/css href=main.css rel=stylesheet>
0 U5 Q: V" \' D" A4 B$ j* |/ B. ?<script type=text/javascript src=../../jquery-1.8.3.js></script>
. D' g# x; n+ F* ^<script type=text/javascript src=vcd.js></script>
' `2 P) i: z0 @: }<script type=text/javascript> , U, r4 t& Y" O+ z) X! V
$(function () / S2 Z" j* R; V3 x2 f7 ]4 \; h
{
$ K& u! c  r  f+ w# |3 r/ O  R+ x0 cvcd.init(); 1 ?7 }/ m( I, {7 |0 ?# D
vcd.autoplay(); + s4 o! f/ m/ L. T
});
8 f# Y6 x  A' T, v  i; E+ r( m  u* G- s</script> 4 L1 v9 G) p4 W
</head> ; @4 ^* s3 N$ W  s
<body> # R0 ~$ }6 z0 r9 w. e7 x, z# n$ e
<div id=vcd> 8 p% B6 `1 A9 g$ |0 {# T" R
<i id=cd></i>
! A+ C+ O. Z7 Q+ l' I% H; l<ul>
5 a' v* c( P2 W  D4 S3 w8 X; P<li class=active><a><img alt=超人归来 src=ad/1.jpg/></a></li>
4 v& A8 x# ~1 R# W$ l, h3 C$ z<li><a><img alt=超凡蜘蛛侠 src=ad/2.jpg/></a></li> 2 L9 R$ A( o6 @2 D& I6 M
<li><a><img alt=黑暗骑士:蝙蝠侠 src=ad/3.jpg/></a></li> 4 d1 I8 p+ b8 _) m
<li><a><img alt=美国队长 src=ad/4.jpg/></a></li> : p& b$ [6 m, j5 b2 f8 K
<li><a><img alt=雷神托儿 src=ad/5.jpg/></a></li>
, o) L+ i3 A1 K( S+ E6 V! R0 W( E% L<li><a><img alt=金刚狼 src=ad/6.jpg/></a></li>   Q; F3 i) h' N- Z( d
</ul> 7 Y9 \( o$ G8 P, E
<a id=wrappager title=超人归来 target=_blank></a>
. }" B/ G4 l5 @7 L' ^1 Z<div id=indexbar>
/ n5 u/ s& Z5 Y6 F9 `<a class=active>0</a>
2 p8 B2 ^# b; L; t$ D8 [& x: d+ l9 V<a href=#>1</a>
& z( [4 K( S. s( Y6 n& g<a href=#>2</a> 1 N5 ?& L& m% T/ Y6 W& n& u
<a href=#>3</a> 7 }) D, q# W1 c; V
<a href=#>4</a>
" l+ M1 Q; C2 I# F0 i<a href=#>5</a>
: C# V& U; J* w4 o& ?* P5 v: p) ~</div> ( f9 J. o, ?- |
</div>
- o4 `: b% P) H  M" k9 C) T</body> % W' e- q( j# h4 R* B
</html>
' X3 d1 ?8 |. N可以看到div#vcd是最外层容器,给它设置了一个背景;ul li 分别设置图片元素;i#cd设置背景为光盘,然后设置显示位置;div#indexbar中显示图片的索引,供点击。
) {- Z) t' ]1 xcss:
7 f  }* E& [7 L" G1 w, i代码如下:! y" k6 Z) p/ y0 m' ]' j
#vcd, #vcd ul, #vcd #wrappager 5 X6 \, s, @- p* J# W: P
{
, P7 K1 b: r# ~2 ]' m# }+ v3 R  Pwidth: 200px;
  K  L; A, b  ~  I) f3 lheight: 272px; ; e  x% _3 n5 }. m/ M" D
}
$ P( {+ n# o1 G4 v" ~# s8 b#vcd, #vcd ul, #vcd #wrappager, #cd $ w6 |0 P0 g% O, M: [& `# }  Z/ ~
{ 7 Z" u+ T6 `# e$ c
background: url(images/disk.png) no-repeat 0 0; 4 Z/ g) [+ B3 E( N# ]- g
}
/ I5 p  i0 l' W+ u$ D#vcd 8 Z$ o% \* L: u4 f  L
{ ! q* C9 Z1 u' J6 p- d+ D0 _9 q- h
position: relative; / }1 _; R* |7 T  I
margin: 20px auto 0; : _! t: N# h8 D! D3 y
}
4 `" Z' p7 [; e4 ?5 A% F#vcd ul, #vcd #wrappager, #cd 7 c' K% S, q1 u6 m9 @
{ ; D/ a5 r) v$ A$ o0 m( }
position: absolute; ; T" y6 ]) ]& K& ]# e! r3 C
}
7 s) Z' O6 ?5 a* t5 n# e" m4 t#vcd ul
8 _; I4 T9 \5 j6 g{ 5 O, H- K% R  e( v- o- f/ `- ?
background-position: -263px 3px; : t" y/ M$ h. V4 S
}
/ B1 y$ P/ t/ o: c+ [/ `2 o1 c#vcd ul li, #vcd ul li a, #vcd ul li a img 3 m2 q- V/ T. Q- G
{
3 N/ R7 e6 f6 Z6 h9 B$ Hdisplay: block;
( R3 ^5 _+ L: u6 }6 ^. \width: 178px;
2 E1 g( _- U2 K3 k" q9 P9 j" Kheight: 264px; ! C: B; S' W5 ]) J; {# E0 e
overflow: hidden; , R+ e+ k: D1 O. p2 I/ b
} : F. ]9 r2 O2 H7 @: ?0 m
#vcd ul li
0 i8 O! H8 G% K- ~1 }{
9 F3 ?8 x8 L9 ]top: 5px; # K/ J! n$ V4 D' f
left: 2px; 0 a" G0 W' S7 p! }9 v& W
opacity: 0; ' O3 `5 ~( p* V$ z9 Y4 W( c
/*visibility: hidden;*/
. F! s" i; t, E- Y. p4 H! w) Y-webkit-transition: opacity linear .6s;
6 ]+ L5 S7 H2 a* ?+ y0 n. t9 P( v  r/*-webkit-transition: visibility linear .6s;*/
: ^+ r% w! i, k& O4 [-moz-transition: opacity linear .6s; 2 |" {' |( w$ M4 a6 `' h' T
-ms-transition: opacity linear .6s; 0 a( t7 t# M& T$ v  K. B7 `
transition: opacity linear .6s;
% {0 o+ Z/ Y% O5 L) _position: absolute;
5 j* t; e8 a1 U% g} 3 I2 N: G; v& z0 O, Q
#vcd ul li.active 8 A, L! k$ Z5 J$ |
{ * X  e! g$ ]- I( @
opacity: 1; 2 ~& M4 c9 m  b( @
/*visibility: visible;*/
* v0 q6 |+ a1 d# C" p}
5 j5 ]! z% b: z! e#vcd #cd
' r0 ^/ B* B) Q! u{ # x" ?2 q! t- O9 }
top: 64px;
8 \" s) R0 N% R2 b: Xleft: 78px; 5 h% L: a" l9 i. e
width: 146px; ) l" @( m' C% ~+ F7 w0 a" A( Y9 h
height: 146px; 4 O7 b0 Q% q6 e1 l0 z( \, P4 y
background-position: -510px 0;
6 X8 R6 f5 q1 W$ J! ~-webkit-transition: left ease .4s, -webkit-transform ease 1.2s .44s;
# n- c' j( U/ J-moz-transition: left ease .4s, -moz-transform ease 1.2s .44s; 5 J) T: F8 h2 l& _0 {
-ms-transition: left ease .4s, -ms-transform ease 1.2s .44s; * L! S& y/ a; z0 @9 F  A! e
transition: left ease .4s, transform ease 1.2s .44s; $ s! ^7 Y2 C: c7 ]% H
}
% Z. ]4 v9 E0 X: U  P! d#vcd #cd.switch ) B' O! T. d7 Q1 Y2 G0 a
{
# E; {7 Y+ B7 _6 l2 t& Sleft: 120px; 2 T# Y/ K1 {1 v! F# W- w
-webkit-transform: rotate(2520deg); / h& F% k2 P) a, D3 ~1 F
-moz-transform: rotate(2520deg); 5 v* Z% `' C! r
-ms-transform: rotate(2520deg); 0 o8 K4 M) A1 q/ E+ b
transform: rotate(2520deg);
) B9 |/ Y$ \# v# [2 \$ e6 T* H% F4 i} * R8 Y" m6 x. ?3 R: g7 y* T
#vcd #wrappager 7 J6 ?# S) L0 z& n1 R; ]
{ . h8 P( `$ l' n% z0 o- \, J
display: block;
9 U+ _! V1 @* N& E( R  P3 Hleft: 0; 9 ?$ N& y: L# |/ w& }0 G  H6 H
top: 2px;
) L" w+ w2 }, L0 k# Q}
- G) L7 m7 g& F7 h: j! I7 v2 N! [#vcd #indexbar
' B3 `0 w2 Q3 h: |0 u4 i{ : a1 z+ G* b( d6 l( O! Z
top: 235px; : V" i/ X' H# R$ z& f1 O6 Z
left: 25px;
% l6 M) B5 a. _# D4 B# Jtext-align: center;
: {* f: p% Q7 T, goverflow: hidden; $ N# N0 b1 @$ G( _5 l8 Z
opacity: 0;
2 ^( X" z; M7 h2 ?2 a2 U, P8 H  Dvisibility: hidden;
% Y. h# f- h7 M; U-webkit-transition: opacity linear .6s;
+ g; k! O- X9 G9 \8 d-moz-transition: opacity linear .6s; 9 m0 a/ a4 ~" R' b
-ms-transition: opacity linear .6s; ' u3 |0 b. K* o6 P8 D1 A3 g
transition: opacity linear .6s; 1 o* X( A, K5 V# ~9 Q, q
position: absolute; 8 {; T/ E4 G% C# Q& D
} ) N, V8 T; b0 h$ d  B
#vcd:hover #indexbar
7 U: a2 z$ j* R0 u0 [6 C8 N' e/ w{ / S% ]& I! H+ T0 g+ v
opacity: 1;
9 W6 M; }1 y% p  [5 D6 \. Q# `visibility: visible;
) ?2 r; J( _7 }, E' h6 c/ D9 v}
, a0 M3 `: {" `1 ~" ?#vcd #indexbar a : m3 }2 n3 s6 V; _
{ 0 R! E5 u8 `0 H: V* W( Z& U$ e
display: inline-block;
/ l1 ]8 M" v! m5 r% b% W8 ~margin: 0 4px;
6 p0 `0 c/ h+ U, n$ i: @4 K' o, C0 [' Yheight: 0; ; ]3 k+ K4 w+ D9 D' o
width: 0;
8 Z8 O1 V; L$ L& J4 @  Uborder: 4px #9f9f9f solid; 9 K0 d) r2 A1 @% D' O+ e4 Z9 V; t
border-radius: 100%;
. Z! y" H0 ]  |, s& m# ntext-indent: -200px; " F0 D- y2 U/ O! I/ e
overflow: hidden; ) I4 v9 S; q' d" f1 |
} ' ^2 ]  G* ~2 ]( z: k) O
#vcd #indexbar a:hover, #vcd #indexbar a.active + I7 n2 k0 {' q/ A6 K3 U: A9 k
{
1 z: ^9 G7 F6 Ewidth: 4px; ' b! X# b( O* S# }
height: 4px;
: F/ D( K- {) o! U; l! Uborder-color: #05c7fe; . o+ h: f5 ]; _  C
border-width: 2px; " v. m# b9 Z8 C* t
}
# A  y3 [" @1 K0 y% j9 i' i6 n对于css大家可以照着敲一下,对于位置的布局主要就是依赖position:relative和position:absolute;然后大家会发现使用css3的过渡和变形:transition和transform 我简单提一下: 0 N+ `. R( h+ s9 \! s
1、transition : left 1s ease 0s ;
. S- p( o2 O' g0 v参数1:需要过渡效果的属性,可以为单个属性:width,left等,也可以设置为all。
9 y. R: e5 M" r& @. t参数2:过渡的持续时间
6 j1 D! A# K0 _参数3:过渡的速率动画,这个大家有兴趣可以查查,就是先慢后快,匀速之类的。
) m  g7 t- Y$ a% t$ n: c* }% u: w参数4:过渡开始的延时时间 $ Y/ K8 h& s5 E% {
transition也支持如下写法: ! ~$ B) u% ^& i
transition-property:border, color , text-shadow ; # r3 b9 o. o$ W( w0 f6 S
transition-duration:2s , 3s , 3s ;
9 v2 p( a, @& `* N6 e* e. ]2、transform支持几种变形 , O9 e4 L7 T, s8 d
transform:scale(0.5) 缩放 9 b% {- L0 W2 y
transform:rotate(90deg)旋转90度
) ]2 E2 R2 ^# k# y8 ktransform:skew(10deg 2deg)斜切,矩形转化为平行四边形
( G; E' T3 H/ |' a- M4 ?transform:matrix() 这个矩阵变形 这个网站提供在线设计矩阵 1 M0 F- j9 W  e6 E- J: `
transform:translate(40px 20px)平移
0 L- x; Y4 ]5 g1 e' t例外提供了:transform-origin:20% 20%;用于修改变形效果的起点,默认为重点
2 _0 h5 n( h2 T当然我们这个例子用的是旋转,也就不用修改变形效果起点了。
" a, D& h. ^. I. }0 R5 `: t4 ]6 k
1 }5 h' N9 O" e+ r5 F$ z. p最后是js:
# \8 a1 `9 @# k代码如下:- w4 W% ~4 Z( Y! b2 Y" H
/**
& k: N+ v; }/ B* created with jetbrains webstorm. 6 T% ~6 C( b6 [
* user: zhy
" X7 N/ @6 `9 i7 ~/ k2 J; H* date: 14-6-15
' E& p, K. d" Q! H* C- r' A* time: 下午6:26 1 f) y* ]! ?: t' i# M7 x
* to change this template use file | settings | file templates.
; F/ @! K0 d7 S2 ?6 |*/
# J4 c/ s6 S2 Z  ~var vcd = { 4 [5 x" b% M: _4 t. Y. X/ e
/** 3 Q1 |. M- f  Y* p! E* ]0 u
* 常量 8 B, u& H& i9 d) Q' D! b9 Y" `
*/
* b3 d4 ~6 L4 U; {0 Z# A# B$ tid_vcd: vcd, 8 y* K2 F& `- b" d# W
id_indexbar: indexbar,
8 M, y# s, e5 Z$ k7 o' bid_cd: cd,
7 Y( G" H8 G% B; I7 {4 d' g, F: yclass_active: active,
# X8 B$ B4 n4 \. E0 J% Oclass_cd_switch: switch,
) l; M& |, Q3 \% o9 v1 ocurrentindex: 0,
) y, Q3 \' W6 t2 b: ^2 v4 Visrunning: false, # O5 q+ I" `- W4 X0 [
timer: null,
) P5 H6 \* E( C5 m5 [8 G) X, iinit: function () : x, H. |2 ?0 ^) V; [
{ , r' c) w9 X4 f5 V' {
/** 1 n# {5 @7 U# k& a# \( ~8 _2 e' `1 |
* 初始化数据与事件 9 Q4 r' w4 {$ p9 N2 {& c4 ?( ]
*/ 6 ]  D8 h9 v! q6 p% Z) b
vcd.vcd = $(# + vcd.id_vcd); 2 t2 M6 S& l# P5 N: B: y) r
vcd.cd = $(# + vcd.id_cd);
* N  D3 [# l3 j/ h* h4 q, v" pvcd.imgs = $(li, vcd.vcd);
8 C3 T$ }% D$ h9 o8 ?6 e" i* rvcd.indexbar = $(# + vcd.id_indexbar);
* V' B$ k6 f6 {2 J+ G4 _6 ]# bvcd.vcd.mouseover(function (event) 7 h- `- ~9 N% c; `3 X* y( k6 I
{
( W8 d* K5 Q4 ?+ Q5 `8 L1 Nclearinterval(vcd.timer);
1 Z5 D* e1 i# b! r" B" v, m});
# H: h$ V: C) ~. O( I9 n4 Lvcd.vcd.mouseout(function ()
% d8 |* Y2 E2 x{
0 l9 |/ M7 }9 N0 D+ v1 Ivcd.autoplay();
, K. e/ L& T$ s; e- f) _$ H: u1 p; X0 P}) % w: c1 J% F: {' o! p
;
  M1 d: |+ f( Z; j$(a, vcd.indexbar).click(vcd.dotclick);
  K% R( ]1 _7 Q- @; C, Q! [" }}, . q4 Y) d7 h2 ^+ R/ B, f: O
/**
$ z2 p) X3 Z) L* 按钮点击切换 ) a4 N5 H" ~# z' N# X9 z% J- J
* @param event
4 T: N9 h; s9 |: O1 P+ B*/ / j9 w  `4 g* y
dotclick: function (event) ! S) }1 k7 X$ ?! Y- z6 {3 g
{ ) ?& h' ^' {  d. E3 q. G
//如果当前动画还在运行,则直接返回 2 k+ W- E8 g3 I: q% R* e, o7 Y
if (vcd.isrunning)return;
$ S" c  q( K. cvcd.isrunning = true; . k9 {8 Q! j0 g: K! l
$(a, vcd.indexbar).removeclass(vcd.class_active);
4 V! ]$ m' S  r4 ]" y1 `$(this).addclass(vcd.class_active); - _5 p3 v' N* m1 i9 V7 H% p2 ?! }
vcd.currentindex = $(this).text();
# e5 [# N5 _  X. m( }/ {  jvcd.cd.addclass(vcd.class_cd_switch); 2 L+ Z2 s' v: \% l, K1 T2 U  P
settimeout(vcd.resetdotclick, 1500);
0 ^2 P7 E8 M5 ]8 ?" Ievent.preventdefault();//阻止a的默认跳转页面
% o1 }" i' y- r* K8 f1 w& j" \}, $ Z5 i, C+ J) L, ]; [& b0 u
/** 4 U! e: A& t8 ]2 y9 {, n% ]4 R
* 当cd动画结束后,更新图片
) x1 P4 {- E% k2 [% l+ e, w+ u6 e9 M*/
* O; i& [" s7 ^- H* @( m& Mresetdotclick: function ()
4 P* b  t( t$ P{   I' \7 e# b$ @+ S2 Z
vcd.cd.removeclass(vcd.class_cd_switch);
# [9 O9 F0 e* U. s( ivcd.imgs.removeclass(vcd.class_active);
- w8 a7 c1 m4 y9 T9 |- xvcd.imgs.eq(vcd.currentindex).addclass(vcd.class_active); + _9 H& e. P: z) c; p5 K
vcd.isrunning = false; 6 S3 Z0 G  n! e0 g+ G
}, 3 N: y1 J9 y8 r- L' s
autoclick: function ()
1 B" T9 Q; H- j4 y{ & L- Y0 I4 ?# U8 \4 V" D$ L# T
var as = $(a, vcd.indexbar); % R1 ?0 w" P8 ~. z
vcd.currentindex++; & i8 T; {5 \5 o. I# W" L7 I$ R: T
if (vcd.currentindex == as.length) ( T& ^- f: \! U, v7 P- U3 T
{ % C) W4 y( _5 Y9 Q
vcd.currentindex = 0; 2 _% u8 d" s! d  W: s& N
}
# @6 ~: }5 W  z0 N% @$ Q* Jas.removeclass(vcd.class_active); 2 y5 D4 E3 i( b, R
as.eq(vcd.currentindex).addclass(vcd.class_active);
) K+ R3 f5 j# V) ^8 ?6 _vcd.cd.addclass(vcd.class_cd_switch);
) A5 j8 Q' S! _) osettimeout(vcd.resetdotclick, 1500); 8 h& L) @3 T2 L6 E
}, . A8 g9 Q* Q9 `+ a" V
/**   W9 ^: I! a( k
* 自动播放 / p  _) w7 O' r. W; c+ {6 i
*/
; ^7 b* e$ I7 ?9 \3 Nautoplay: function () : O6 i' o1 w$ \( x4 h
{ ( e- r" Q7 `7 @9 a0 ?
vcd.timer = setinterval(function ()
9 |  y0 J( a" s{ 2 w1 F. z& ?9 i: l7 j0 h/ H
vcd.autoclick(); " \3 Y& E5 E3 {: v
}, 3000);
+ `: A! x0 \% r8 @}
6 u8 g$ T4 l7 C4 g}
0 {) \2 {: O- q' [) Y2 {; - H' Z. S' K! q- `
单例的写法,定义了一个对象,然后用户通过vcd.init() ;vsd.autoplay()调用、
* X$ p4 V: J0 K- g代码如下:5 i8 k1 q- ~  {, R% \! ]8 I* N
<script type=text/javascript>
" S. _, U# s# k9 ?$(function () 4 w& v" K& S6 p6 S  N
{ 4 t* V+ |* H' |; A, R8 h, E/ f- k' S
vcd.init(); 8 ?5 M% P7 x/ z$ J. s( S" I# X0 g
vcd.autoplay();
) c1 [$ v# _5 Y3 A, @# K6 P- Y}); / o" h5 k7 `% @) k$ K: G
</script>
1 k( |& V3 D( Q9 J$ @重置的css我就不贴了,下面我把源码提供给大家下载。 " [0 |# ^0 J$ S; o! D5 q! W
! R0 e# W& z1 A: g7 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客服 返回顶部
快速回复 返回顶部 返回列表