返回列表 发新帖

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

257.2k 8
swmozowtfl 发表于 2015-7-10 22:25:26|湖北 | 查看全部 阅读模式
先看下html:
# U. p& A$ }8 s, Q1 M3 s' l+ [, Y代码如下:, ~- E2 ^+ l* N# @! D4 N
<!doctype html public -//w3c//dtd html 4.01 transitional//en ! @9 `8 Z' c- ]$ K6 H9 x
> $ O7 h' Z& m8 q6 H* L& r4 ^' M- d
<html> 2 w* R( N" U% V! _; s
<head>
# V* K0 n1 w% F8 i6 B9 ]! d7 X<title></title>
/ U- e, {; y( h7 x. R<meta content=text/html;charset=utf-8 http-equiv=content-type> 3 X! T# |. B  Q# ^! k
<link type=text/css href=reset.css rel=stylesheet> 4 M, \2 C- D' d! q9 }
<link type=text/css href=main.css rel=stylesheet>
- Q$ F9 g: {+ [: X9 D! T' k  F$ v<script type=text/javascript src=../../jquery-1.8.3.js></script> 4 ]7 k4 H- W& v& |; D3 x
<script type=text/javascript src=vcd.js></script>
0 Q. o: f8 n; J0 S<script type=text/javascript>
9 g! x4 o3 O1 b) M$ y- m/ J$(function ()
1 Z( @: g0 }9 y9 N* i: i& J{
' ~5 W/ I2 r. e) X  x9 J/ i  d! \9 {vcd.init();
* Y. v: V( j& d  O5 D& Q  Ovcd.autoplay(); ) N2 E* Y- ~+ H  `0 K8 P
});
0 q# q5 e9 I6 Q* T' h9 i4 }7 i</script> - R7 M& s' e- b% e
</head>   F# c, c8 X8 a1 ~6 }& G
<body> ! d/ \' c* q: N) |
<div id=vcd>
2 r7 Y7 Y7 q4 ~2 T* H<i id=cd></i>
) R, ~. b! ]; K, _& k4 h<ul>
$ }3 @) `: O( W1 L9 \<li class=active><a><img alt=超人归来 src=ad/1.jpg/></a></li>
. W  @# z) c( A. V' W. d<li><a><img alt=超凡蜘蛛侠 src=ad/2.jpg/></a></li>
) j0 z  R; [; O  X, A7 M<li><a><img alt=黑暗骑士:蝙蝠侠 src=ad/3.jpg/></a></li> 0 l% Y+ D6 q. N  Q0 J0 N# L: |
<li><a><img alt=美国队长 src=ad/4.jpg/></a></li> 2 S7 J4 l: ~) n1 W% V6 A
<li><a><img alt=雷神托儿 src=ad/5.jpg/></a></li> - }6 [7 h: P$ t* i5 V2 K6 O; q
<li><a><img alt=金刚狼 src=ad/6.jpg/></a></li> - R( [; M; p* q
</ul> 8 Q) T! ], l+ I' f& A
<a id=wrappager title=超人归来 target=_blank></a> # j; B& M% J9 \/ R
<div id=indexbar> # X, Y9 U$ d  ^9 l7 y, l
<a class=active>0</a>
( E9 s: p" B" ~5 z<a href=#>1</a>
( T3 C+ t3 I% \7 c" q/ P<a href=#>2</a>
) y" T- p( s' t# ^7 T<a href=#>3</a>
3 I. v; A- [' `+ t9 @- R5 b<a href=#>4</a>
( C: ]6 H7 b. k" ?' s<a href=#>5</a> 8 N% r. F3 g# [( j( ]! ~9 `% v
</div>
( W$ z; h% A6 ^: ~5 m$ h0 D</div> # z7 B; [% Z$ [9 z0 e# [
</body> / ~8 C+ C& {6 {  }
</html> : N& g: N+ R* x9 i3 s" |
可以看到div#vcd是最外层容器,给它设置了一个背景;ul li 分别设置图片元素;i#cd设置背景为光盘,然后设置显示位置;div#indexbar中显示图片的索引,供点击。
+ `) _: `; R; [( h+ G9 o/ S( Ccss:
  E5 E! E3 k# ~( q代码如下:
1 S2 l5 f' Z6 r& e* B& b: \( Z; a2 ~
#vcd, #vcd ul, #vcd #wrappager
& g/ m; |% E' I) n/ q{
  u6 D  W. R  S& B% z, qwidth: 200px;
, s1 f- z  e' V% X2 o4 yheight: 272px; ; @# G8 v/ ]# ^/ s
}
5 ^3 @' [/ J' [' U#vcd, #vcd ul, #vcd #wrappager, #cd
7 M+ N7 B# c9 l: N8 _8 F6 I{
6 k0 i, }$ B( A% t( A# }$ pbackground: url(images/disk.png) no-repeat 0 0;
0 u! Y) N1 w1 e. n} / U2 d+ H# \  ^" P5 F4 Q5 w1 ?( a
#vcd
/ B' H" p7 B1 a, m{
& C9 y; d& j# wposition: relative; + O# R& N0 m& \7 C
margin: 20px auto 0;
, E$ d$ B! v3 u3 @} ! }9 X4 E( Q' U9 e& ^& I6 `7 c$ u" M5 H
#vcd ul, #vcd #wrappager, #cd & k0 r6 B! x. A
{
5 F6 o' m8 g+ [position: absolute; ( G$ Q  E  _% {" J( D
} , C1 X  J2 s# I# g7 T" s. r
#vcd ul
! O6 P, p4 T( `{ + E/ D& u! Q( a5 D5 U7 X8 R
background-position: -263px 3px; ( {* [% n* i* m3 s+ }
} 6 Z0 c7 N: O+ D4 r0 v2 C2 D
#vcd ul li, #vcd ul li a, #vcd ul li a img
0 P, |( r9 g! \{ 7 c) |  R9 l% l7 `% S* R- B% k
display: block; # T1 S# n# }. ^
width: 178px; 1 K6 [' I: X- @
height: 264px; 6 Y0 i0 @* S6 l
overflow: hidden; * w+ t- t+ d9 u1 _( n9 y- {; G; H
}
* a( o4 m* ?! }  Y#vcd ul li
' ^2 Y" k. f. O  T# A{
3 E8 l4 H- z# d6 H, }& ?top: 5px;
- Q3 b9 b6 P! A* |6 h' C; D/ a1 |left: 2px; * L3 h( G! c9 k4 x
opacity: 0;
0 I) L8 n& ]1 \! m! u1 x% H/*visibility: hidden;*/
" a! [  @  H  W% a3 k-webkit-transition: opacity linear .6s;
# t/ R7 P' v' l, V+ F! x" |$ \$ N/*-webkit-transition: visibility linear .6s;*/ , t+ i8 v( K6 E  ~" z3 `" d: ]
-moz-transition: opacity linear .6s;
; M- G. ~. V9 ]3 V9 |-ms-transition: opacity linear .6s;
3 H+ J4 N5 O( }& }! @transition: opacity linear .6s; 2 d) O, R) m$ U% |/ o# e
position: absolute; ( I" ?% \6 N5 p+ s) |6 ]$ [
}
- H: g+ |( c0 j#vcd ul li.active
% W2 U6 w4 X3 Q7 {& [- D/ R{ 8 i7 z! i( N8 t  p  V
opacity: 1; 2 ^) y7 f9 P" R  d5 @+ B
/*visibility: visible;*/
; B& s/ \4 k$ \4 D7 b+ S, X} $ k# X; C# v+ j1 e9 A0 G) c
#vcd #cd
: @4 r2 Y* X$ B6 Y! s{
/ p# P" {7 h# W% C3 q8 _top: 64px; ( f( o* Q4 B2 j: |' N3 A- e
left: 78px; . q. h' }( J& B8 D$ c
width: 146px; : T6 ]4 A/ g8 o8 P6 P
height: 146px; $ O$ I' Y) _7 [6 r
background-position: -510px 0; , @( z; F7 O9 {; U7 d
-webkit-transition: left ease .4s, -webkit-transform ease 1.2s .44s; $ Q2 ?$ J, G, v  a8 X6 i& @
-moz-transition: left ease .4s, -moz-transform ease 1.2s .44s;
  s# _. }4 p" ]-ms-transition: left ease .4s, -ms-transform ease 1.2s .44s; ' i3 T7 S2 w" u( \; E. W; [
transition: left ease .4s, transform ease 1.2s .44s; - @- H0 o, r1 q! E0 H
}
( f/ G- j+ Y# l#vcd #cd.switch
  d/ N7 j2 C  x6 N8 U  ]. f& ^{ / ~/ f6 W1 v6 }5 ?/ S3 T5 s
left: 120px;
" k6 T' H  n* `; P' D7 U3 B4 w/ Q-webkit-transform: rotate(2520deg);
( t1 s. R1 m5 ]-moz-transform: rotate(2520deg);   F5 }3 A5 C) ^' L" I% Q
-ms-transform: rotate(2520deg); 3 K: Z% L( M' r3 o0 j1 S" }
transform: rotate(2520deg); ; D% ~2 o' W8 F
}
) b) ^8 d% n9 l- @7 s#vcd #wrappager
, j* M$ v" T+ O/ g# Y{   h( [# p& {: Y. F
display: block; % C4 K/ j0 N7 p
left: 0;
- f' j% H+ G3 n% q2 a7 H2 L* x, ^top: 2px;
4 E# e/ i- j6 \, y/ v0 R2 d4 p} 9 ?! X! E4 j% o5 s* C; F4 V" Y
#vcd #indexbar 7 I6 F2 \6 H% E9 d; S$ |
{ $ l  J# ?: f) ~) \
top: 235px;
9 y/ O/ [, G2 {left: 25px;
9 i4 N5 t# M3 P3 d: e$ xtext-align: center; 5 S. Z" k- W- N% g
overflow: hidden; 7 u7 W+ u- a& B. @1 L8 _+ k
opacity: 0;
8 ^7 P6 `/ w2 i9 |8 n. Nvisibility: hidden;
+ ], n$ r/ r( ^: v3 }1 e$ ]-webkit-transition: opacity linear .6s;
% s! E, w% V1 H, y. N) v-moz-transition: opacity linear .6s;
$ ?. G: B& z6 Q+ E7 W1 V: e-ms-transition: opacity linear .6s;
& m  J  u6 e' e; S& Utransition: opacity linear .6s; : _% o* @9 a( k( O6 L$ E9 [' }! s3 \, l
position: absolute; 1 J3 I' _% h4 U
}
3 ?- f# X0 J& u; H- k, ^#vcd:hover #indexbar
8 o) y* ~5 t$ O, [; {' E{
3 u* l$ f6 t# r3 J" O% \opacity: 1;
/ P8 c% P' y, {$ ^+ Bvisibility: visible;
; C9 V- |6 l4 k, j9 m  E}
& q4 s; Z, o6 E* h5 v9 r, ?#vcd #indexbar a % _4 O8 i7 U; P8 _( ^, c7 n1 i' I
{ 8 z8 W7 f" G" n" k$ S$ S
display: inline-block;   M' ?2 n. c* Q. Z6 I' W* K( z! [
margin: 0 4px;
) K# b- R0 e+ v7 aheight: 0;
, C8 G4 J! t" j5 fwidth: 0; % b' ~. a$ C0 m8 O1 L
border: 4px #9f9f9f solid;
) W7 X* }( p2 R3 A) ~0 Y5 U; Aborder-radius: 100%; " s0 |9 j& X5 r# x; g" z
text-indent: -200px; 0 d; o, n& z7 B) M
overflow: hidden;
$ q; V, i. m" |, K/ ?. q) P} : L: b$ K6 l; i8 X4 _: F3 V1 K
#vcd #indexbar a:hover, #vcd #indexbar a.active
3 P6 S7 y( n7 P( O# G7 q' r{
" j! V* b8 i1 [' i8 |4 }8 Bwidth: 4px;
% b; |+ U) V9 g0 ^* J- i$ G; P  Hheight: 4px;
1 f; E  w' z6 ?3 o; I+ Eborder-color: #05c7fe;
, u3 E+ }0 [- H' `9 u$ X) z! Nborder-width: 2px;
8 H& T2 z1 q' r& _0 @& S) ?} 6 x4 q# V; G" p7 o* X+ A1 m
对于css大家可以照着敲一下,对于位置的布局主要就是依赖position:relative和position:absolute;然后大家会发现使用css3的过渡和变形:transition和transform 我简单提一下:
$ i2 N8 r: y( U  @9 M% s1、transition : left 1s ease 0s ; 1 N7 n9 c+ \/ K7 r2 T+ E2 m
参数1:需要过渡效果的属性,可以为单个属性:width,left等,也可以设置为all。
2 ~# W7 K* S! P) c6 d" s$ |参数2:过渡的持续时间
( U$ U% y0 l$ k" m- f5 W" N* z) v参数3:过渡的速率动画,这个大家有兴趣可以查查,就是先慢后快,匀速之类的。   z3 ~% I% c+ q% i6 ~# ]
参数4:过渡开始的延时时间   d* w* a6 C  M4 `) s
transition也支持如下写法:
, K) w9 G' Z7 S5 P$ utransition-property:border, color , text-shadow ;
1 f# B1 B& h, @. b3 Y. E! Y: Vtransition-duration:2s , 3s , 3s ;
% h* m4 J' Z5 d( ~2 h, w5 g2、transform支持几种变形 " z2 D( c( y0 }2 j  T
transform:scale(0.5) 缩放
6 P" h2 g, ^2 {# Y/ X: [( ytransform:rotate(90deg)旋转90度 / Q, T3 R$ S1 {& h7 h
transform:skew(10deg 2deg)斜切,矩形转化为平行四边形 9 E; `. m0 h5 W$ L
transform:matrix() 这个矩阵变形 这个网站提供在线设计矩阵
% ~0 A: I; p# n' H' b4 d6 h  ^2 i9 ttransform:translate(40px 20px)平移 ( o7 {% t' ~" x/ R: [$ R0 R5 |
例外提供了:transform-origin:20% 20%;用于修改变形效果的起点,默认为重点
/ m9 p' B+ ^2 p& z" X, |6 J当然我们这个例子用的是旋转,也就不用修改变形效果起点了。 5 @7 w1 {8 W. Z* f# t/ C8 X
2 u9 Y" J# N' P- T9 I* N& n
最后是js: " V! ~- J6 @5 T' Y
代码如下:
" N( ^# u0 ?; v5 y; |) j
/**
6 b4 z+ S4 p- j$ D* created with jetbrains webstorm. 6 K3 C; `$ R2 a9 R
* user: zhy
! N* y$ x6 x" k* r* date: 14-6-15
. F4 @* m6 w/ X0 z: ?4 I; K* time: 下午6:26 # g) t! K" q- M6 n) J4 i+ g: k
* to change this template use file | settings | file templates.
+ \- K2 _+ {$ X( s) J; k*/
: U& {4 m+ C/ h% v+ Lvar vcd = {
" a! L& f% T/ e/ o1 w9 @1 E/**
2 ], Z; M4 z' _% }5 y8 D* W* 常量 5 n/ w4 }0 ~% P% v
*/
6 V; f; x! [8 L* M  `  x; o$ zid_vcd: vcd, 2 _  G! _/ L4 y: b. x( u
id_indexbar: indexbar, # G6 V. i) a+ c' U; C3 \# Y
id_cd: cd, # n3 R4 h! D6 a# F+ V+ j3 _
class_active: active,
2 M, p  g8 h( K; r/ w7 u5 tclass_cd_switch: switch,
3 J, ]* C, T6 V( Y+ e0 ^9 [& xcurrentindex: 0,
- k8 w: \1 I$ A( |isrunning: false,
% m$ [; W6 d2 \; E- v  m& [timer: null,
/ C( q) |4 s) H* Tinit: function () 9 {3 z/ N* K6 `+ [2 d8 ?1 H
{
, y1 l: ^2 r0 m/** % Y. V. o3 i0 s. U$ ~
* 初始化数据与事件 ' _  r. D, ?  U8 q3 ?, q
*/ 2 `+ a9 G% j1 o* w% t
vcd.vcd = $(# + vcd.id_vcd); : A0 s, N2 Y- D  R" F8 F
vcd.cd = $(# + vcd.id_cd);
# `  u4 y6 r; q, t+ A5 q' j0 gvcd.imgs = $(li, vcd.vcd);
- y( p1 t  l# I  ~0 h3 Svcd.indexbar = $(# + vcd.id_indexbar);
  g; ?' n% \$ |& L! o6 ~7 i( mvcd.vcd.mouseover(function (event)
  Q* h* s$ @+ s% e8 t{ 1 l/ h$ m2 b5 u6 x( Y. x5 {
clearinterval(vcd.timer);
: ]% Q2 Q0 a/ M$ I3 \8 @; X6 B9 S});
1 ^8 D. r$ j2 s9 svcd.vcd.mouseout(function ()
4 }' v, g% d  f2 ]9 P/ g% [0 Q, x{
* d# H  a( X) Hvcd.autoplay();
, |% ?/ f5 i" o) N}) 6 B0 }* V) y0 }' W
;
- [7 ?- Y2 w- [# L- z8 {' Q. |: q9 z" E$(a, vcd.indexbar).click(vcd.dotclick); $ o  p. ^: {8 H: j7 i+ _. M+ f
},
9 ?+ z1 h+ I! |* @. F; p/**
" B, c$ d: q4 p$ S* T' z- t6 R7 _* 按钮点击切换 7 a6 Z+ f/ y! @! c
* @param event . |8 O0 g5 g# S2 e
*/
' z5 q! W3 L+ D  m4 ydotclick: function (event) 7 B) G1 W6 |( L. [$ z
{
7 u) o& S$ U1 k  [9 y//如果当前动画还在运行,则直接返回 * b: m/ Y" l* L/ Z- W# P5 A
if (vcd.isrunning)return;
: v# P6 |* I0 h# G6 ]" mvcd.isrunning = true; / J/ e/ Y; s: C' V# S4 c
$(a, vcd.indexbar).removeclass(vcd.class_active);
1 T0 I) b# M8 v$ U- [' z/ I; A  {$(this).addclass(vcd.class_active); 8 m4 u( A8 T0 Q& Z( r2 C) y
vcd.currentindex = $(this).text(); 0 u0 |/ W. Q' R! U
vcd.cd.addclass(vcd.class_cd_switch); 8 H$ `7 s4 [; c# s
settimeout(vcd.resetdotclick, 1500);
4 r+ L0 I6 ?5 U/ L: N0 n+ oevent.preventdefault();//阻止a的默认跳转页面
4 ]( k# S6 W# |: Q}, 0 U8 q# m5 @* D1 |/ J2 p1 [' ~
/** 1 E9 y, Y3 A: q% [0 v; _" k& C
* 当cd动画结束后,更新图片
2 w* i9 h" e2 v1 ]5 H*/ & ^3 T% V2 v, q9 k% {
resetdotclick: function () / j/ z# h: T2 G
{ 0 g2 ~' L& h# T' ~
vcd.cd.removeclass(vcd.class_cd_switch);
, y3 @; N$ n. X; Nvcd.imgs.removeclass(vcd.class_active); + c$ L3 w! E6 b6 K' ~
vcd.imgs.eq(vcd.currentindex).addclass(vcd.class_active);
( l, F1 C* b; w7 L& E% B- Dvcd.isrunning = false;
! G3 J  V& ^3 {3 n3 |8 a! o}, 6 `- U; y. o! l& B# B0 ?9 {
autoclick: function ()
8 z' e5 s  Z% ]3 R& Z8 W{ ( A" P* k( v. Y
var as = $(a, vcd.indexbar);
( S. F' I3 L2 [3 }0 a- G) dvcd.currentindex++;
0 A  e4 H# p+ ?( z( `( vif (vcd.currentindex == as.length) # X9 [$ _3 X: ~
{
* Q5 [6 z2 j* p8 rvcd.currentindex = 0; # K6 m9 g/ j2 m  z9 l* W) V
} 0 G8 H, H1 I8 O8 I9 K! [4 U# d
as.removeclass(vcd.class_active);
# a( w3 T/ O5 y  k* @as.eq(vcd.currentindex).addclass(vcd.class_active);
) J4 Y, `! Y: Z% J2 cvcd.cd.addclass(vcd.class_cd_switch); 1 O6 }6 z1 Z  {4 M0 P9 n
settimeout(vcd.resetdotclick, 1500); * ^. h9 G8 P+ c! }% ^
}, 3 s! |- T8 f0 G$ d/ {9 l. ~5 r5 ~
/** - G" s" e" {- P: ]6 |4 f3 S" Y$ E
* 自动播放
' W/ G; r) T1 r0 J  c! A3 \*/ 6 ?& J5 K: {5 K1 w. t- I+ t! P
autoplay: function ()
" U: P: Y/ m/ |9 q* Z* f, N{   S7 J, h) I- z$ W: k. Z
vcd.timer = setinterval(function ()
( K4 F( z8 f$ x+ }. [{
' j8 \. q9 x0 Y7 Nvcd.autoclick(); $ \. P! Q& K; L7 f
}, 3000);
5 k( e' G( o+ X! ?3 R. H}
2 }1 u& O" n$ ]9 s- o} # C/ i- Y  @2 C7 C  L8 \
;
& y, N3 D% b* P' S* [单例的写法,定义了一个对象,然后用户通过vcd.init() ;vsd.autoplay()调用、 - y6 U3 [; L$ W& \  o" H
代码如下:9 O" G6 B0 N4 n3 o4 t* N, q& g
<script type=text/javascript> ' y, z( Y- r; u$ R& ^2 I: h7 M& {
$(function ()
; T5 l  @# D( Q; Q# @# ^6 _+ M' O{
3 U# U( v: j: J7 J9 q2 ivcd.init(); . S2 S; S/ p$ u) N/ c1 `& G
vcd.autoplay(); " H- J4 {0 Q4 v& z  r7 {/ h& W
});
8 s4 w+ j, Q* O% H, k# B</script>
: x/ i2 a6 f8 G6 |重置的css我就不贴了,下面我把源码提供给大家下载。 3 l  r# j2 @. K- h2 Y) N: W
8 @7 ^+ o2 A0 F* [+ t& ]* 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技术交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表