返回列表 发新帖

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

257.6k 8
swmozowtfl 发表于 2015-7-10 22:25:26|湖北 | 查看全部 阅读模式
先看下html: : ]$ N. Z# }6 Y+ s( D" W: j
代码如下:7 `3 l+ D3 B$ ~" `0 r
<!doctype html public -//w3c//dtd html 4.01 transitional//en ! |, T+ a. g$ f6 a% d# G
> 6 t6 Q6 g! K8 v3 ~% b9 ?$ `6 L
<html>
6 V& D- }& z# r  w) s<head> 4 m2 E% R8 L2 q2 k" f+ g9 f1 P8 O
<title></title> 4 N& `$ v  _5 W# N
<meta content=text/html;charset=utf-8 http-equiv=content-type>
! j% I, K8 S! f+ l0 v<link type=text/css href=reset.css rel=stylesheet>
  k9 m+ E2 l: Z1 S6 `+ \' h, O<link type=text/css href=main.css rel=stylesheet>
  `4 f. T) x& P$ a<script type=text/javascript src=../../jquery-1.8.3.js></script> 2 h( `; E% D) m$ l' }
<script type=text/javascript src=vcd.js></script> : {4 Q( h# d4 F6 G  w" w, }' Z
<script type=text/javascript>
% H: ~( r3 ~1 y! G. p6 G$(function () 2 q5 j9 y" i+ p+ I
{ - X" ?+ S) q8 W: d; F, {
vcd.init();
% s( ?, d" p( z5 L- W7 @( H4 i" D4 |% svcd.autoplay();
6 K$ W$ [1 l- x5 b2 j- z& S$ H});
  e7 D. W& r, g8 V</script>
/ B1 P# j4 I6 R' u6 I</head>
9 k' Z9 E6 c0 U8 X2 K8 L<body> 9 ?! b! W7 |3 O5 M6 M9 J9 [! A5 \
<div id=vcd> & q3 Y. j1 ~: Y! J" g6 l6 k3 X
<i id=cd></i> 5 u0 q( j) m8 h) q
<ul>
/ U8 u6 j% @1 N7 W8 k) a<li class=active><a><img alt=超人归来 src=ad/1.jpg/></a></li>
9 i( Q1 b7 T/ L3 E1 [8 l: ^  _3 m<li><a><img alt=超凡蜘蛛侠 src=ad/2.jpg/></a></li>
" W) H0 \: _1 {6 n8 F, j<li><a><img alt=黑暗骑士:蝙蝠侠 src=ad/3.jpg/></a></li> 5 ~/ j! L% {* S# h: q: }% P* g7 I- S
<li><a><img alt=美国队长 src=ad/4.jpg/></a></li>
5 f( h6 g; |1 V<li><a><img alt=雷神托儿 src=ad/5.jpg/></a></li>
; n" {/ S3 ?8 f9 Z9 ^<li><a><img alt=金刚狼 src=ad/6.jpg/></a></li>
8 Y2 {( C( T& Q</ul> : H/ e8 c4 `8 P! A% Y+ [  S1 h
<a id=wrappager title=超人归来 target=_blank></a>
: o3 `# U( @4 V6 d6 s! }<div id=indexbar>
* j( T% l) I: a1 M<a class=active>0</a> : z* P0 h0 u+ o- s3 F# t' [
<a href=#>1</a>
" _0 `  }5 B) E) K, e& ]<a href=#>2</a>
. B$ G0 V8 Y3 u, {. [" A! e' z! V<a href=#>3</a>
3 E. p5 w! E9 e# C<a href=#>4</a>
7 e6 x3 k3 d, ]9 G/ O+ ~<a href=#>5</a> - P1 B3 {3 {7 G  i; C, R
</div>
  G7 Z- @7 _6 m" S' X. B</div>
$ j5 O! }0 v7 _0 B0 h3 j</body>
7 M! q7 G: s9 C" \</html> 7 c0 b3 i$ Z3 B9 k* u$ v
可以看到div#vcd是最外层容器,给它设置了一个背景;ul li 分别设置图片元素;i#cd设置背景为光盘,然后设置显示位置;div#indexbar中显示图片的索引,供点击。 7 \( a0 Z5 \& a" G* `& }
css: 6 V) F9 B4 U& u8 ~) O
代码如下:
# E9 u9 q; g% \4 D
#vcd, #vcd ul, #vcd #wrappager 6 y% `& _6 v# l' b$ |
{
8 I0 ~; A2 @( u5 c- }4 hwidth: 200px; + n: J$ S" y/ k! T7 ~
height: 272px; ; E& F& v7 u. p, y; O' l6 ]' N- e
}
; i- V6 O. p1 q#vcd, #vcd ul, #vcd #wrappager, #cd / _% z. z7 ~* E6 c" i* ~  d
{
8 P& ~, a" C# M! {! O( e# Bbackground: url(images/disk.png) no-repeat 0 0; 6 K! D. U& K4 ^* U1 H/ U- W/ s
}
5 l! @/ }3 d7 k0 I6 O, h6 g#vcd
. A- X4 J- d; u  U2 t; U* n{ , B$ M! u3 t2 l, Z
position: relative; # n- j4 i& g% q6 k7 H. N  x* C
margin: 20px auto 0;
& S+ |; g- T  C! r# u}
) ~  A; O* G  v8 ~#vcd ul, #vcd #wrappager, #cd $ X" U* p% X: t* j- `* Y3 \
{ 3 M: Z; B9 X/ |
position: absolute;
# H* E+ c! ]. ^}
: Z6 G9 f8 D0 j5 G#vcd ul ; \* C' ?2 W0 v. S+ E
{ ( H$ S9 m5 Z5 }2 Q; |' X5 W
background-position: -263px 3px;
7 q' m# z1 i2 t# e* ^# a$ b} 8 K8 ]( {! I. B% e$ b% V9 M
#vcd ul li, #vcd ul li a, #vcd ul li a img
* b0 G1 L. I9 k2 e. w5 a( R0 a{   I; d- ]) \( l0 a. \
display: block; % k! f% w% y& e  H! J
width: 178px; ) k$ b- u4 E$ _1 U1 A9 L$ f1 ^
height: 264px;
# K( Q- b/ }/ n$ K- @7 zoverflow: hidden;
& l1 W  G$ q% w} 7 T# I% q* u5 o
#vcd ul li " r; U3 A5 f' {7 Z' z
{
+ U6 Q1 `0 F3 J( h& p* q. P9 U! Ktop: 5px; , u! k0 s* q* U' f3 ~8 Y
left: 2px;
! O0 F1 l" _# ]opacity: 0;
& ]6 a+ q; h4 P  R: z2 h! m/*visibility: hidden;*/ $ u0 _) i8 y5 r3 ?# P# S
-webkit-transition: opacity linear .6s; 3 D7 a, u4 L) O+ i; Q
/*-webkit-transition: visibility linear .6s;*/ ' O% v& j1 O8 l6 G; b% w- X' @
-moz-transition: opacity linear .6s; 4 I% J+ ?: H/ P$ X5 }1 u% P' ~* _# N
-ms-transition: opacity linear .6s; ( O$ E, p3 \: p: d. _
transition: opacity linear .6s;
& O$ @' O, I& }( Mposition: absolute;
, g9 j6 k1 `- X5 [- \}
. I+ @5 {' D( G* H#vcd ul li.active
/ l! y( Y' C# g" G* w; [4 o{ 3 Q+ |: }7 o6 w# [$ d% z
opacity: 1;
7 w7 [$ T$ c& [/*visibility: visible;*/
6 `% D. S- w' }1 x( F4 V3 s/ t} 4 o! E* A4 ^/ E' h3 @! Z! P
#vcd #cd
5 n9 M, J6 {2 o( ?% S{
, l/ y8 A3 N7 G, R3 ltop: 64px; % N$ W1 o. o* Y$ ?5 h
left: 78px; % U  s5 A; s, A% `
width: 146px;
, p7 A2 z( ?8 mheight: 146px;
- a& A/ n, a4 E0 E7 z$ v) q( J# Cbackground-position: -510px 0;
, S" Z) J1 Z; I7 ]-webkit-transition: left ease .4s, -webkit-transform ease 1.2s .44s;
+ j4 k  V( u3 `-moz-transition: left ease .4s, -moz-transform ease 1.2s .44s;
: ]# e. V% f) z4 @' ]6 m- a3 p-ms-transition: left ease .4s, -ms-transform ease 1.2s .44s; / {/ i% z5 c% U
transition: left ease .4s, transform ease 1.2s .44s; 9 S) G4 X  {+ V7 p
}
  Y- l  l7 \* B# A/ b/ z* U#vcd #cd.switch : P; W9 N1 q2 ^7 W+ a
{
# E7 P5 B* n7 Y; _9 Cleft: 120px;
( u5 |: }) ^4 O7 O" u-webkit-transform: rotate(2520deg); ; ^* u6 _8 a# g3 K5 x) n
-moz-transform: rotate(2520deg); : z" f9 I1 G" y
-ms-transform: rotate(2520deg);
4 j2 q/ e6 }3 p1 Y( rtransform: rotate(2520deg);
. W) l; h) E  L9 O( N: x} 4 E; }7 f9 o9 m" F* n
#vcd #wrappager ( A) z  w" N; k  u) \
{
$ Q) R8 @  }9 Pdisplay: block;
* ?3 x% R. _, S- Mleft: 0;
  o; O# b5 m9 ]8 t5 @; C" H9 ^top: 2px;
4 x: b/ J" j1 k* x}
- r  y# q. Y" R, Z: ^8 c: @; f#vcd #indexbar
: w: A, m, {! l  x2 f+ e' [- F{ 1 S7 N% G4 f" h, O3 S
top: 235px;
  C2 v2 p& @/ R+ L; X) Oleft: 25px;
. e9 r2 V& V  j( s# ^text-align: center;
* G5 n- g  W) X% Zoverflow: hidden; / N! O" f: n% p
opacity: 0;
+ C# }5 J3 K! I; \9 \; O! W' `visibility: hidden;
- o" k# M6 G' m& x" K+ V- \-webkit-transition: opacity linear .6s;
( s* [; `9 j- a7 U-moz-transition: opacity linear .6s; 7 ^. k" `% n3 m# @' Y
-ms-transition: opacity linear .6s;
& S% E0 Z& n8 f  X2 Z% P$ Vtransition: opacity linear .6s; , \0 s+ i/ t7 ]1 }
position: absolute; 4 o+ F" m! W4 I. d
}
5 o7 o% S7 m: {#vcd:hover #indexbar
- J) V4 U  y8 g" B0 {{ " `3 ?- ~+ V9 N) z  y8 J. J+ A
opacity: 1; 7 g* ^% V% z5 _  X3 ^
visibility: visible;
9 T. X2 m2 x; \1 h3 d}
, t* B, v9 s) u- C. [$ _$ B6 _#vcd #indexbar a
) q4 _5 p% [# r: \5 U  [- V2 S+ P" c{
; W: N- P6 j% l4 idisplay: inline-block; . T$ p4 ^8 Z! n$ X/ n
margin: 0 4px; . ?0 `& W7 X+ s2 Y1 o. d3 v
height: 0; # w) C# ^4 A9 Q0 C/ Y6 d/ r0 l$ }4 O
width: 0; $ V4 v2 h. @& j- k2 ~3 S0 P- i
border: 4px #9f9f9f solid; 6 f+ _8 g: Q) p/ u3 G- Y
border-radius: 100%;
8 ~+ P1 n: Y6 ~3 l$ o1 ?7 g4 qtext-indent: -200px; 4 F7 X, `) V; C; w+ D. J' X
overflow: hidden; 7 ]0 z+ ^: C5 ?8 v1 B) y; I. ^
} ' y1 ~* ^. {, ?: P( v, M
#vcd #indexbar a:hover, #vcd #indexbar a.active % q  ?. i  `: g0 _9 G+ i
{
: I8 {  Z0 K  Z' L4 S9 A0 o, ^width: 4px; 6 a% m0 U# a" z% E
height: 4px;
: e/ n7 L& {. zborder-color: #05c7fe; ! K6 }! ]0 b) _8 T
border-width: 2px; 2 k% q$ Q  P& g, P3 F. h
}
! ^1 D0 ^! y* O# K* F, R2 w& S- z对于css大家可以照着敲一下,对于位置的布局主要就是依赖position:relative和position:absolute;然后大家会发现使用css3的过渡和变形:transition和transform 我简单提一下:
6 Y$ m) a* O+ R0 x$ ?1、transition : left 1s ease 0s ;
* h% o9 ~- z/ d/ q参数1:需要过渡效果的属性,可以为单个属性:width,left等,也可以设置为all。
+ I7 h0 H" H! M5 e% L参数2:过渡的持续时间 & P( j- \  U0 k( o) j4 e* t: s
参数3:过渡的速率动画,这个大家有兴趣可以查查,就是先慢后快,匀速之类的。 5 V  @3 q( W6 a! A$ w! L8 `
参数4:过渡开始的延时时间 & c7 c% i) g; i6 o
transition也支持如下写法: , n/ I1 q3 ~! g% y
transition-property:border, color , text-shadow ;
( e# ~- [+ O- k- z4 [# Qtransition-duration:2s , 3s , 3s ;
7 Y* x: H9 m, m$ M2、transform支持几种变形
0 G. a- G7 a0 q' Ztransform:scale(0.5) 缩放
5 A: K5 x0 H3 o9 ?- e  x8 x, ^3 O) Htransform:rotate(90deg)旋转90度 ( ?% @7 K; ]3 x0 S0 u
transform:skew(10deg 2deg)斜切,矩形转化为平行四边形
2 u  \7 Y9 k. y/ ytransform:matrix() 这个矩阵变形 这个网站提供在线设计矩阵
; F2 W; c6 S  z) a0 Z- o& ftransform:translate(40px 20px)平移
% F5 `6 y/ s6 {( b) ~$ ?0 N- ]; [( H例外提供了:transform-origin:20% 20%;用于修改变形效果的起点,默认为重点 - _  b$ t7 _6 @5 n; `2 E" Z
当然我们这个例子用的是旋转,也就不用修改变形效果起点了。 % Y1 s3 a( q9 L
* ^4 A7 H6 O: L: w& x5 z9 u: G$ B
最后是js:
- F# Z$ @* ?# m+ `  Y代码如下:& `% N* ~# J  X  G5 w" G
/**
( i" r3 x9 \, q- j/ S* created with jetbrains webstorm.
7 S8 c9 A' Q7 T9 d2 U  y* user: zhy ' O) K1 b1 ?! X$ {" b, x
* date: 14-6-15
/ _0 _  O- G0 {* time: 下午6:26 ) [/ S% {2 h0 x
* to change this template use file | settings | file templates. " w3 w5 r" v8 s2 k
*/
7 [5 F; t/ z* u8 b4 P( b  H7 Vvar vcd = {
7 x5 U* G  Y8 h5 F7 J) v  p9 a, n* Q/** 6 o$ L( i& J2 p- b0 s8 s" ]
* 常量
7 H: X- p  D7 @" V& y*/ ) b" F( C4 T" _5 z& t7 H' {" ^! H
id_vcd: vcd, 9 ?  n# Z  e  W- i) ~/ c" Z( b) u
id_indexbar: indexbar,
! }7 b0 _+ w/ Q+ \& Q3 E3 a9 o; i  _id_cd: cd, 0 J0 F8 o1 J6 v
class_active: active, ; r% _7 l. O. N' V" X. g
class_cd_switch: switch,
; z& O7 n# }' p0 Q! z) c* pcurrentindex: 0,
* `' l( A* u1 @5 z% ?4 Fisrunning: false,
2 K4 Z1 J! E. C( K8 ^/ \$ htimer: null, 6 m( y; f0 i7 v. [  d
init: function () / E4 ]7 \0 k+ _. O8 O
{ % Q7 S" x, L& I
/** ! X3 K/ }5 Z( j& S2 G- q2 ]+ [/ a
* 初始化数据与事件 * ^7 ~& }! R4 l
*/ 4 F. N8 h  R! Q. i! q. k
vcd.vcd = $(# + vcd.id_vcd); * R3 @$ `" x" a+ @; P! N: F
vcd.cd = $(# + vcd.id_cd); * C, T0 x4 N1 E4 J8 B# z1 g
vcd.imgs = $(li, vcd.vcd);
; m" a  v& d- H% ~; {8 X) Fvcd.indexbar = $(# + vcd.id_indexbar);
" K1 N. u' J4 [9 A0 B3 Xvcd.vcd.mouseover(function (event) , `& x! ], n# a6 \
{ 5 O& G1 A' a/ _* I5 A; j( _
clearinterval(vcd.timer);
( y7 ^3 j8 c" l" M}); 8 K& T5 v' R- G' N- k4 C3 g& k
vcd.vcd.mouseout(function () 7 S. o% L+ {7 g( E& q) X7 B
{
" }1 X: H) y9 j% T- Lvcd.autoplay();
4 I" S9 h2 m7 R8 S  w1 f* Z})
8 X! x0 Y9 Q$ J. N, j8 p;
! t% r8 N8 x' u: N% F* J$(a, vcd.indexbar).click(vcd.dotclick); ' T; |7 F+ [) Q1 ~& Q  l% l
},
1 t$ k. V4 {4 D& s) G9 B; h% u- Z/**
% M6 N/ m& V  Y& }* 按钮点击切换 : t& a* O+ u3 t/ b8 i& V! W  y
* @param event 3 v2 Y% j* K" ~  W
*/ % F. M" a4 {+ r5 V( {/ E7 ]) o
dotclick: function (event) 7 S* @' M4 c% }6 T, R
{
4 c5 K( q4 z, {" I) R//如果当前动画还在运行,则直接返回 0 G. s% c" u, G) U
if (vcd.isrunning)return; 4 _3 t" U/ L! v( e
vcd.isrunning = true;
, T9 ]$ P! ^* R- c: M! j$(a, vcd.indexbar).removeclass(vcd.class_active);
+ C: k0 ]( B4 y& s. M4 `; w! c& `$(this).addclass(vcd.class_active); , B6 j' A- n; ?2 B
vcd.currentindex = $(this).text();
: M& g  O. R7 W; m/ q# ivcd.cd.addclass(vcd.class_cd_switch);
" `2 N9 J; X# I$ f. p0 _settimeout(vcd.resetdotclick, 1500); 9 w0 W- s; ~3 m% n
event.preventdefault();//阻止a的默认跳转页面   y  b! k- ~4 j3 ^6 O7 I
}, # d9 W: [6 J2 a, R2 m; _
/**
, J  v  O) J' c, G* 当cd动画结束后,更新图片
# N( v+ p! V) O  Z7 B*/ " U) @4 R9 _( o$ C- P0 [
resetdotclick: function () ' u* [7 h& V+ u( G- B' j
{ ; R# h0 h7 v5 R1 [  M
vcd.cd.removeclass(vcd.class_cd_switch);
/ }/ J1 e) ?% Xvcd.imgs.removeclass(vcd.class_active); ) b9 u0 h+ q4 t! H2 O
vcd.imgs.eq(vcd.currentindex).addclass(vcd.class_active); - y$ C) C$ G# S6 [& j% `1 M
vcd.isrunning = false;
' q" c$ F$ ]* B: V. T},
5 L" v& ~" S/ H0 vautoclick: function () ! b0 q: m0 P2 m; g; f
{
, v# u" w- D& W4 Bvar as = $(a, vcd.indexbar); 9 x4 F; O0 Y# W# r% @, H
vcd.currentindex++;
+ F* e4 y  o! j$ Dif (vcd.currentindex == as.length)
6 h# R6 w6 b6 S0 x{ $ ]4 l$ I  U+ `& g
vcd.currentindex = 0; 3 v) r. x+ a5 @$ `
}
& U6 s  o3 A" ~! e0 qas.removeclass(vcd.class_active); 0 r) C: [& d/ T
as.eq(vcd.currentindex).addclass(vcd.class_active); % m" h; o3 B0 O3 J  U; \8 c
vcd.cd.addclass(vcd.class_cd_switch);
2 T+ m! p. D5 r0 g3 x* Csettimeout(vcd.resetdotclick, 1500); / C7 u' {4 t4 C' d# A# P1 k
},
. s3 k8 e1 e7 d! J. ]" I4 N/**   {* ^5 a, w1 ^- p7 _+ I, N
* 自动播放 ' b/ {% U. P4 q2 S
*/
9 Z- ^# x; X# |3 ]: ^# z1 sautoplay: function () 5 j. S8 K" r3 O' H7 H  s- j" _/ k! K9 v
{
4 w) p- q8 k: \! k9 tvcd.timer = setinterval(function ()
3 [4 p* \, b, @6 C/ E% x3 l{ " c4 H- D7 T: [- C% ]( ?
vcd.autoclick();
* s' n0 F# |3 W; Y7 V}, 3000);
8 h7 W4 j* k$ l7 T! r! O1 @} " ~8 V# ~; s6 P% W: m8 L( q& o
} + Q) z- b; r; x5 U- C
;
8 r4 O% I2 ~$ R3 h2 E# Q4 m单例的写法,定义了一个对象,然后用户通过vcd.init() ;vsd.autoplay()调用、 . d5 b: [  r$ q
代码如下:
6 I. `8 f3 P* B$ U( S+ L' H
<script type=text/javascript> 9 \6 o: s% V  C- G7 z$ y. {' c+ t
$(function ()
% L) Y% z, F( V- R* w, r{
4 w" o7 R/ X* }2 P! L2 vvcd.init();
& N. Y; L$ ?2 u2 bvcd.autoplay();
' b5 x3 `4 a6 K: X2 ~* d2 y& t$ k+ B});
; H. {& i  S8 n; @( k. a- i6 \</script>
" k: R; D& \+ R1 _& M9 D重置的css我就不贴了,下面我把源码提供给大家下载。
5 R& P; g# u4 r9 f4 M
( k3 }* i! j% v) |4 |1 s- |更多网页制作信息请查看: 网页制作

回复|共 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客服 返回顶部
快速回复 返回顶部 返回列表