返回列表 发新帖

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

257.6k 8
swmozowtfl 发表于 2015-7-10 22:25:26|湖北 | 查看全部 阅读模式
先看下html: " @5 f8 ?3 o# {( q7 D( `& k
代码如下:6 a& h; I3 b- H6 K
<!doctype html public -//w3c//dtd html 4.01 transitional//en . P6 c: W7 T4 J& I2 t# J
>
2 n. S+ H/ X+ R$ Z7 T+ D; |<html>
3 \+ @) u: G- j8 W, O) e' d! t<head>
$ Y' j% O* V( }3 |; m<title></title> 0 u) b# S4 h; Q$ K5 h: @* E1 b: K
<meta content=text/html;charset=utf-8 http-equiv=content-type>
  `  j1 j* {% Q2 f1 i<link type=text/css href=reset.css rel=stylesheet>
: K: z# [+ b& `3 i* [0 |; D+ Q<link type=text/css href=main.css rel=stylesheet>
$ P! `! |  U$ z* G, T; J<script type=text/javascript src=../../jquery-1.8.3.js></script> ( s7 V2 r5 t8 j$ H7 {0 I6 ]
<script type=text/javascript src=vcd.js></script>
2 O% G. n5 a" [# _# H% ~- D. d<script type=text/javascript>
9 P! b- Q1 y+ ]1 x# j$(function () : _4 D+ y; J9 E) W* ?3 v5 ]8 Y( c
{ 0 p3 E1 a! q. ^
vcd.init();
+ {3 o  t. y! V/ dvcd.autoplay(); $ {+ l- |2 a: M2 j( `! q& z
}); * z& b* n) L' [- r
</script>   G# H% W2 ?6 p6 S# m9 `* `
</head>
1 T) {/ {; J- c, i! C<body> 0 n0 x+ J8 \$ N8 s
<div id=vcd>
7 V* o5 m" ?$ A1 c" `<i id=cd></i>
/ }# [* v. P: [* i8 Y0 {<ul>
) p8 C5 m& b5 w( z<li class=active><a><img alt=超人归来 src=ad/1.jpg/></a></li>
& V2 l" e! I( q, ]& t' n" Y<li><a><img alt=超凡蜘蛛侠 src=ad/2.jpg/></a></li> + F7 W% C0 c4 k; N( D+ Q$ ]. Y! e
<li><a><img alt=黑暗骑士:蝙蝠侠 src=ad/3.jpg/></a></li>
+ Y+ c- o  j6 {<li><a><img alt=美国队长 src=ad/4.jpg/></a></li>
+ d+ p# b; t& l- ^<li><a><img alt=雷神托儿 src=ad/5.jpg/></a></li>
" [% K$ R) x4 o2 d( q  d4 ]7 H/ W<li><a><img alt=金刚狼 src=ad/6.jpg/></a></li>
& Y& j# d8 E. y7 a% R% ]6 J, Z! Z3 I</ul>
& z& R5 i' y5 `<a id=wrappager title=超人归来 target=_blank></a>
+ O' e- V0 {. W/ f$ E7 R3 U  ]<div id=indexbar> : D$ o/ y  M% [; N
<a class=active>0</a>
+ t6 p, S: ]! n' E( w<a href=#>1</a> ( ^" O9 b6 X2 ^/ c8 ~2 k& m$ L( v! c
<a href=#>2</a>
4 k1 x: P9 ?9 a<a href=#>3</a>
% P+ d  a9 {+ `! }# }' p. `9 T9 C# O<a href=#>4</a> " Z: T/ l0 D& X$ _2 ^/ ?4 B5 i
<a href=#>5</a> $ ~# M. _* t3 j2 M( @: S/ G: Y
</div> 4 m+ k0 q. M/ `  ~) N' ^
</div>
1 V0 F5 o! e; F$ m</body>
% P) F8 |, {% ?4 [$ O" i% e</html> 3 d) s4 \1 q* i& @* Y' @
可以看到div#vcd是最外层容器,给它设置了一个背景;ul li 分别设置图片元素;i#cd设置背景为光盘,然后设置显示位置;div#indexbar中显示图片的索引,供点击。
# I& B& N: a, o$ x1 u- ?' ], ~+ mcss: , `# X, N  Z8 m. {
代码如下:! M+ j* L2 v; R" B: N! H: S
#vcd, #vcd ul, #vcd #wrappager 7 M9 k" @8 H( }7 p% \
{ 8 s1 J4 V, c; E0 b) |' g
width: 200px;
! S. p! t6 p- B6 F7 [4 b) uheight: 272px; * K9 O8 p# D7 E1 t
}
# k7 Y5 G8 U" Y- O#vcd, #vcd ul, #vcd #wrappager, #cd
; |! f/ j2 ?% a0 K) S# H+ G/ Q{
  J# k# m/ p' k: X" U8 k" E4 ^background: url(images/disk.png) no-repeat 0 0;
8 [# L! F) o; G} ; n% ~7 G  {# [2 c+ G* c! C
#vcd 6 e9 N) s( i" V$ o# D4 |* i$ T9 C+ \
{ / d, ?3 h; ?# U0 |7 ?
position: relative; ( x3 b* K$ a+ N# l! \8 H
margin: 20px auto 0;
+ z6 _1 J5 F' w- |3 j& @" }} . A$ Q6 u/ w7 R, {& r' O+ K
#vcd ul, #vcd #wrappager, #cd
: S: l1 i/ P7 |4 q/ O{
9 C: f4 |- [5 {+ L/ ?1 }! a$ hposition: absolute;
0 {! D' ]- U% f+ f2 ]5 N0 L: B+ F' H2 F}
/ B4 S0 Y7 P/ i1 y, Y3 K% H& y. C#vcd ul
5 J/ Q8 h1 ], J0 t3 A{ % s2 T/ S& `( x: S& a" A2 m; Y
background-position: -263px 3px; : C8 k) s# c# g# Z2 R
} ( y& P: a2 Q0 j
#vcd ul li, #vcd ul li a, #vcd ul li a img
1 S6 c, m+ L+ l6 r/ c{
/ _. |: {: j- G- u9 t* sdisplay: block;
1 B* P, F6 t5 N) j1 G- I) Uwidth: 178px; 2 x6 Q5 B% D4 M' v
height: 264px;
  S% V' u& M/ Y0 v+ j9 _overflow: hidden; 1 p" x9 O  O& \1 \2 H
}
6 Z/ R7 H& t  Q9 ?9 ]2 s#vcd ul li
& p8 e  R8 [8 C0 b+ y& z" ^' Q{
: Q, u' D, d0 h5 I# a# S; f& Ttop: 5px;
+ X, a; v+ o+ rleft: 2px;
& ?7 g3 R# i/ Nopacity: 0; 3 S& @( F* I+ k1 x3 Q
/*visibility: hidden;*/
. V$ i" r- ~3 L8 Q+ i9 ~4 p2 b-webkit-transition: opacity linear .6s; ; _. V+ Z7 u, V/ O2 g
/*-webkit-transition: visibility linear .6s;*/
5 H- G4 M( E2 `  v/ @( f% N( q-moz-transition: opacity linear .6s;
! j. a6 H* S: _; z4 v1 x1 E0 ?: F-ms-transition: opacity linear .6s; - U! W0 J, G6 I7 j& q
transition: opacity linear .6s;
$ I1 r, J. a+ x0 `position: absolute; 1 ~5 X" v$ r+ O* w) k
}
4 D* Z# t3 r4 l+ W: p#vcd ul li.active ) ]! V* i. n' I. T$ B! {5 k8 I
{
" _4 N! K* o8 J! s% f" s3 C. kopacity: 1;
2 a! |# |% ]- F# M/*visibility: visible;*/
) O* G, Q' M3 R3 F2 O}
! A( M- V8 h: E; X3 g2 X#vcd #cd 5 J5 O8 B! w8 m- O. C7 }
{ 6 R! B2 ^- t5 ]' p% e( w1 u2 G
top: 64px; ! K# I  ^, [+ K: ^1 E% E5 F$ Z
left: 78px;
- Z. ~( H" ^9 p" C8 L9 U& O# s. @/ Vwidth: 146px; 5 @( n/ }" v! L( [2 d
height: 146px;
+ @+ R1 ~7 N, D' w+ Nbackground-position: -510px 0;
) ^- J1 j: M& w; J0 R-webkit-transition: left ease .4s, -webkit-transform ease 1.2s .44s; ! P2 D+ m3 G' V
-moz-transition: left ease .4s, -moz-transform ease 1.2s .44s;
2 j+ S: o. q2 |5 Z1 p* a-ms-transition: left ease .4s, -ms-transform ease 1.2s .44s; 0 Y' u9 r" k$ Y# Z) q
transition: left ease .4s, transform ease 1.2s .44s;
0 t8 Z! g! l  t2 {' `} 7 Q5 M& m5 [% T, e' A
#vcd #cd.switch 9 O! u' p% L3 B' D4 @+ w, R: {
{ + @: }* G$ p9 `8 p: ]* w0 w
left: 120px;
# H; U5 H: n- k6 n7 h-webkit-transform: rotate(2520deg);
5 v9 H" d  T& l5 |1 A' b-moz-transform: rotate(2520deg);
4 ]( Q' w! T6 ]4 u5 _. l-ms-transform: rotate(2520deg);
: U7 `: L2 U! ~) k( @transform: rotate(2520deg);
$ {% c3 Q. ], O9 E9 w: p7 l} # z, w4 |$ o  T) \, C
#vcd #wrappager & [9 [) q. M/ x6 G( g1 R) N" p9 t
{
+ F7 m. i) {% S  o3 |display: block;
2 N% ]$ `, P& l  l% P( Uleft: 0; % O! n4 {7 _- c+ L( m/ K
top: 2px;
7 W* F# P* ?6 {" B* M}
+ x" U2 I0 ^. V" ~' D1 d9 H% L* v, O#vcd #indexbar
8 [( w( }& i  `{
3 G- m' ^; ^" W' u; Otop: 235px; 2 |; g9 T; N- R
left: 25px;
! j( d( ]5 h7 _5 S1 O3 Dtext-align: center;
4 m" p- ~, y" s+ }+ ?# ~' O1 P+ {overflow: hidden;
- |9 n8 }; K- m  ]6 Hopacity: 0; , d  O2 u7 ^3 k8 Q
visibility: hidden;
' u/ g  t9 h3 {' M-webkit-transition: opacity linear .6s;
  c& z* _9 F( b-moz-transition: opacity linear .6s;
6 T6 a) F0 x/ v) Q* t: O5 u0 G-ms-transition: opacity linear .6s;
$ V6 y9 B& ~; n' R3 l: A! Mtransition: opacity linear .6s; % `5 q- U* H' ?% p2 J1 D" s$ J
position: absolute;
) S) t1 q; A  l% p+ c} % e+ v& k2 \- S( X3 I: B. o" Y
#vcd:hover #indexbar
7 d( g3 N2 w. I( D{
9 Y2 Y" O+ I4 Jopacity: 1; % m. Z, C9 `( [; n8 B+ l
visibility: visible; 2 {4 P' L7 A. \; d: r
} + O+ x% f, ~9 K+ o; s! j! _
#vcd #indexbar a 9 Z0 k; P, N+ Y' W8 |
{ ' E% S2 H' K0 h& ?  a' h
display: inline-block; ) S/ l5 f! ?( K: x0 Q
margin: 0 4px;
9 S0 ?* X: i- r) _$ Fheight: 0;
3 C6 c9 A% F  l. k" s4 t* xwidth: 0; 7 S0 H0 E" F8 X' F( K
border: 4px #9f9f9f solid;
' t, v% ~; \5 d. K0 u5 X3 jborder-radius: 100%;
) a# p* E$ _: `6 f) N$ }* |text-indent: -200px; " W$ [# b+ A, d; b  J' m
overflow: hidden; , Z& q% H% ]+ P- c! l
} . {; H1 p8 l/ _2 N) c
#vcd #indexbar a:hover, #vcd #indexbar a.active
0 A/ A& [! j% p  _3 w, G{ ! v$ W  d. W3 k$ P8 M
width: 4px;
/ g) U  @8 q+ t! d! oheight: 4px;
' q0 z- w- j+ _( V8 R( L0 ^. \border-color: #05c7fe;
2 T% E3 ~( r1 e9 ]$ p  Kborder-width: 2px; ! V& D1 {& a2 b
}
. Y; \% w( G7 {对于css大家可以照着敲一下,对于位置的布局主要就是依赖position:relative和position:absolute;然后大家会发现使用css3的过渡和变形:transition和transform 我简单提一下:
& Q; F% Q5 P7 d2 y- ~1、transition : left 1s ease 0s ; 3 t* Y9 Q; W  \+ K
参数1:需要过渡效果的属性,可以为单个属性:width,left等,也可以设置为all。 # O1 x- `) H0 e0 U9 q. Z
参数2:过渡的持续时间
, E" l0 Z6 G, x) A8 r参数3:过渡的速率动画,这个大家有兴趣可以查查,就是先慢后快,匀速之类的。 * [% ?/ [$ M" B# M6 P* @
参数4:过渡开始的延时时间
3 S. h9 h7 M+ L7 ^  a" Ytransition也支持如下写法:
# Q; A4 t( w4 v) o; qtransition-property:border, color , text-shadow ;
( `. o3 C/ {! [. r+ h+ ntransition-duration:2s , 3s , 3s ; 4 G% M! B3 X! m0 T7 b& p6 v* b( e
2、transform支持几种变形 6 |# d6 [- Z) y9 R0 t
transform:scale(0.5) 缩放
' C$ G$ c/ k/ [7 L: {- Q' Ttransform:rotate(90deg)旋转90度
  j* `4 @' k( E. H3 m' E4 U7 }transform:skew(10deg 2deg)斜切,矩形转化为平行四边形 % s: M- F8 `% N8 ^4 H! B9 U* P4 p
transform:matrix() 这个矩阵变形 这个网站提供在线设计矩阵
; A$ z7 R/ I9 ptransform:translate(40px 20px)平移
5 t8 r9 H! n* D4 W6 _0 v6 E2 R) w例外提供了:transform-origin:20% 20%;用于修改变形效果的起点,默认为重点 1 ?: j/ e* _5 j  \% q! v$ I
当然我们这个例子用的是旋转,也就不用修改变形效果起点了。
9 l( I/ ~; W' @2 l  |  G
7 q; F- c2 Z: f( m+ W( @& @/ S最后是js:
5 e5 |! G, c* l8 `: `! J7 M代码如下:8 h. k, r4 N7 ^5 f. e, b. x. b
/** * T2 g& r. o5 g0 \, Y
* created with jetbrains webstorm.
/ n1 w( a5 t6 [9 y4 ^* user: zhy
* G/ V/ X7 X1 c* {! H! ^: g* date: 14-6-15
2 E# l! ^% b# i% V1 ?* time: 下午6:26
6 S* `0 g" P( \) G" K: V. z) B* to change this template use file | settings | file templates. ) ?( n* A- u1 e; l/ \! J
*/ 9 e' i/ k7 j3 E# L: h3 _4 s2 X
var vcd = { 7 [* _# Q7 j- a2 F
/**
# a  e- K. q. ]4 c3 g* 常量
! ~7 d8 ~6 T, i% g& j*/ ) M2 _! X/ \6 G, z
id_vcd: vcd,
2 e! g5 D& F7 @; G6 ~id_indexbar: indexbar,
$ y9 p  P0 n# O3 Bid_cd: cd, 6 J" t: h, j2 W" P+ n
class_active: active, 7 I/ @8 c. V: y5 y  y- U. c
class_cd_switch: switch, ) C' @' k$ a# \) r2 z
currentindex: 0,
% ?4 x$ e& b2 g( j) K0 r* xisrunning: false,
- r0 R, b" f; U. otimer: null, 1 p! k( P. x* U% O& G1 L4 S
init: function () 4 }5 O' x7 m% E8 U
{
2 q/ ~1 M+ d: `/**
& ]  O/ o( {( f4 w6 \% M, w* 初始化数据与事件
! P6 b' `. @& l*/
8 f/ V) D# y! U2 B- [' v  n9 nvcd.vcd = $(# + vcd.id_vcd); ' I4 e( K5 u/ ^/ [, G0 g& l% ^2 p
vcd.cd = $(# + vcd.id_cd); # U  K0 [. P- G# p1 t+ R0 F2 T) a
vcd.imgs = $(li, vcd.vcd);
! }( [% s& r5 y9 O, y! Y$ Evcd.indexbar = $(# + vcd.id_indexbar); ; a( m8 i7 M  n' Z$ @7 B7 d' M
vcd.vcd.mouseover(function (event)
# `. o% @  C2 H1 H. ~{   G# Y# p% z) |& x
clearinterval(vcd.timer); , G$ k' l* }2 P7 s4 p, e
}); + r6 }2 I8 f8 {8 Z: E6 _
vcd.vcd.mouseout(function () , O- j( x  r& ]- t0 F: M# I: h8 H
{ $ {/ q1 q, W3 ?9 L: T' i1 R, L
vcd.autoplay(); 4 g( D+ H+ e. K) a  H& Y4 R  v
}) " q4 K$ M( i/ m. E
;
! Q/ `4 }* R  J  O4 q$(a, vcd.indexbar).click(vcd.dotclick); ! ~, j: t( x' S2 Y2 D; X6 G; j
}, : X. y1 v3 ~/ v. d8 B/ |7 ?$ @
/** # m0 ?; y) `* K" e6 t* i7 |4 u
* 按钮点击切换
' U- X/ d# o) I6 j* @param event " ?$ n5 ^! w7 L/ e1 _' i0 x4 x! Z
*/ - k( a- v  o. M9 |) M! P9 e+ ^' `
dotclick: function (event) + j( ]" c; s8 d; T
{ 1 P6 i( Z+ N, o2 m; X7 `2 }  b
//如果当前动画还在运行,则直接返回
, n" F' E) {; Y' [if (vcd.isrunning)return;
3 ~" v8 J9 i& O, F! ^; dvcd.isrunning = true; 1 }% K/ r* ?, x" a6 w4 g' W' ^" {& Q
$(a, vcd.indexbar).removeclass(vcd.class_active); $ p& c5 q$ t3 s  H
$(this).addclass(vcd.class_active);
" Y" l4 r$ {. C$ ]# u& m7 v5 e  j( Wvcd.currentindex = $(this).text(); 4 x+ {. y5 Z+ n; ~. }6 h
vcd.cd.addclass(vcd.class_cd_switch); 0 [/ S7 [5 `/ X) z( A" D
settimeout(vcd.resetdotclick, 1500);
& R3 a/ f% f1 ^4 Jevent.preventdefault();//阻止a的默认跳转页面
* L; z2 Z$ N* |+ ~8 e},
9 ?5 y+ C4 M* R3 P/** 7 D) c* r  w2 Z) m8 c
* 当cd动画结束后,更新图片 + q" n9 w; M& i  M
*/
# |# U  t# X2 b3 Jresetdotclick: function () # y* B: a; L! u5 P) `3 w
{ 7 G. x5 u+ X- L9 o6 W
vcd.cd.removeclass(vcd.class_cd_switch); & x" Z; {% [# G2 O& Z7 o
vcd.imgs.removeclass(vcd.class_active);
! i/ e0 U/ E' N: s; ovcd.imgs.eq(vcd.currentindex).addclass(vcd.class_active); 4 n1 h% T; k$ B4 y6 ~: ~
vcd.isrunning = false;
* H0 z/ U; G0 O4 j: P}, 1 p0 {" P# }2 c* P
autoclick: function () 9 E9 F0 a: h: f* h' l
{ 3 b6 J* q6 H1 n7 r5 q! h! D
var as = $(a, vcd.indexbar);
% ]9 y5 \- Y5 [vcd.currentindex++; , Q2 _1 Q4 a' D
if (vcd.currentindex == as.length) : q; e9 n) L1 i9 u: ^' Y
{ - S2 Y  ~. P5 z9 x+ `' m" f9 I
vcd.currentindex = 0; 4 l# `' h" S- y, X
} 9 l, K% a! ~9 [/ ]( }! E5 ]2 q
as.removeclass(vcd.class_active); ! H, l# [  v/ [# B: f. x: E0 D0 x
as.eq(vcd.currentindex).addclass(vcd.class_active);
" V3 b- a0 y! @" p2 q8 X- ovcd.cd.addclass(vcd.class_cd_switch);
7 S' F5 H! `; ]9 {. `settimeout(vcd.resetdotclick, 1500); 1 s0 Z4 H  f! m- }( f
},
& P) s- v; p- R! I8 [; z8 o/** * ~1 g- ]% y8 Q: t
* 自动播放
. _/ D% }/ w1 |4 \4 [3 C*/ ! y. I0 b: @6 h# G. r
autoplay: function ()
. [) y8 S/ N4 U0 k/ v1 r3 d" U" T{ ; r5 y3 w* E2 Z- G; u1 H. J
vcd.timer = setinterval(function () ) n2 V6 V- b( c: e8 |# k4 q
{
9 L$ c% }% _7 F6 T+ i1 E' l/ Qvcd.autoclick();
7 \3 M1 e9 ]- J! Y' x+ h}, 3000); ) i1 w- c% S$ e$ I  A  A
} 9 j6 T% w$ |: ?6 u4 E' J# Y
} ; R2 f- T! o7 K" R) X1 R% E
; 9 P# |, l7 K8 o1 v
单例的写法,定义了一个对象,然后用户通过vcd.init() ;vsd.autoplay()调用、
: [$ d( k+ ]0 {, K- C! o代码如下:
( K* G& t  y2 x- Q
<script type=text/javascript> $ }* p; g0 D7 f1 p& j( g6 p
$(function ()
  h) ?6 A* F8 ]& M. ]1 c{
5 f: X8 v. c$ Mvcd.init(); 1 C9 b) N( x* P8 b! U" h3 y2 ~
vcd.autoplay(); 3 \! w; L4 G% Z. l, }* a
});
. ^  ?$ [8 R- n</script> ( `7 Y, z; _! X  ?4 p6 [9 z* G1 w1 N
重置的css我就不贴了,下面我把源码提供给大家下载。 ! s8 y- D6 f% ]
( T; b) V7 ^* T3 o. A) ]
更多网页制作信息请查看: 网页制作

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