返回列表 发新帖

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

257.3k 8
swmozowtfl 发表于 2015-7-10 22:25:26|湖北 | 查看全部 阅读模式
先看下html: 0 L( V! ?4 Q! z+ b! g& V9 I) j" N
代码如下:
( E$ |6 o! x1 n2 A3 M% ~2 N
<!doctype html public -//w3c//dtd html 4.01 transitional//en
  v& W1 F: w9 R, F) F+ g& ?0 D> 4 @8 W/ H; S5 ]  X
<html>
; }9 y/ `; Y  {" V0 u+ U<head>
0 L% @' `6 v, V<title></title> 0 W2 c# u- T4 l, _+ @* O2 X
<meta content=text/html;charset=utf-8 http-equiv=content-type>
8 E$ ?) B% }- R6 T8 L<link type=text/css href=reset.css rel=stylesheet>
& [$ L7 }7 x, \  l$ s. e  j7 I+ z<link type=text/css href=main.css rel=stylesheet>
; f0 {, E3 k- }% G( i. z1 T" }<script type=text/javascript src=../../jquery-1.8.3.js></script> 6 j& r' Q) j' A' s' ^
<script type=text/javascript src=vcd.js></script> ' |6 U3 |6 e( W2 ^" |- F
<script type=text/javascript> 5 O5 F  I( l1 v0 g
$(function () 0 Q% Q* R/ H4 b% `# x
{ 0 }$ j5 ^4 R8 T8 d
vcd.init();
( Z& l: M% h) u9 i7 O5 dvcd.autoplay(); 4 {5 n- r: ?* h
}); ' P5 q2 R! K. M& K4 U
</script>
: [; D; Y1 h: p$ c4 h1 j</head>
6 X# A& V  j% E7 j# v; i0 Q<body> + q0 j$ y2 H* H( |6 ^7 p
<div id=vcd> 6 [% T/ r1 T- U! V% ]6 W% ?
<i id=cd></i> 4 U; g0 F2 ~& K1 }, _9 D0 q
<ul>
6 H2 f' e$ W& y& c, s  L<li class=active><a><img alt=超人归来 src=ad/1.jpg/></a></li>
& @# e: ^& A% [) D0 S$ i; Y. u<li><a><img alt=超凡蜘蛛侠 src=ad/2.jpg/></a></li> & P  ^+ l. z5 z4 p4 m
<li><a><img alt=黑暗骑士:蝙蝠侠 src=ad/3.jpg/></a></li> 4 k! r! q3 H9 O3 c/ H6 v
<li><a><img alt=美国队长 src=ad/4.jpg/></a></li>
. H9 M/ X; `& T9 U/ T# X/ R<li><a><img alt=雷神托儿 src=ad/5.jpg/></a></li>
% o1 i7 i5 p6 A1 y: l  r<li><a><img alt=金刚狼 src=ad/6.jpg/></a></li>
+ Y) h8 O% ]% @$ u. n- V( J7 p</ul> . D) {. t) [  D+ P2 ~3 P  V
<a id=wrappager title=超人归来 target=_blank></a>
4 ?7 h/ R; X/ [1 C- g1 c<div id=indexbar>
6 t; j" r$ k9 ^0 a! B& U# y<a class=active>0</a> ; U) j# O7 j* P( n. W' Q$ C3 b8 t
<a href=#>1</a>
! \( z/ i2 m' L2 j. w<a href=#>2</a> ; j  S" m& r8 m" V% X7 E" ~, ]
<a href=#>3</a>
+ y6 o4 ^; L' L. w+ l$ _<a href=#>4</a> ( l# d8 i  E6 H6 h5 O
<a href=#>5</a> 8 N* B  D. I3 O0 u
</div> 8 D: O; V: ]# S
</div>
9 p' I8 E5 L! z  l$ L, v</body>
! c2 l+ N8 B1 K</html>
: G1 x) z0 j) u. J7 t可以看到div#vcd是最外层容器,给它设置了一个背景;ul li 分别设置图片元素;i#cd设置背景为光盘,然后设置显示位置;div#indexbar中显示图片的索引,供点击。 4 {1 ~# }, Y5 x. `3 c4 {( y
css: ' k" D6 s2 Z: F
代码如下:0 |* H/ q/ `5 z) L
#vcd, #vcd ul, #vcd #wrappager   ]$ }' V: M8 H$ f
{
% U7 V# d$ y% b. ~width: 200px;
4 i" C& B5 \, O( {height: 272px;
' a4 I( b. @7 W3 o" M/ z}
& F+ O8 `; R3 B) Q; |) ^. c4 i- a#vcd, #vcd ul, #vcd #wrappager, #cd
2 u( F: g; W" A1 c+ B{
. M* `; e9 k9 I' ~; Abackground: url(images/disk.png) no-repeat 0 0; % g$ I0 y. D5 F7 L: s! H' X: g
}
) n. c" D# g" o) D- h) b9 |5 M#vcd
- H5 O$ e2 p# g6 |{
5 ~" U  e; m- W* \8 Dposition: relative;
0 Q1 Y6 i8 g, imargin: 20px auto 0; " X  s% R5 F# X# Y1 \/ \
}
$ J$ K' j$ s% i4 c( ?1 x8 ~  P#vcd ul, #vcd #wrappager, #cd
6 m5 o. d3 Q2 i* l9 V{ ( S8 }: w: G: a# Q- v
position: absolute;
& k2 `5 o( S* D' r3 @} ; N; I* h8 K% M& m9 J; _  J
#vcd ul 7 @. |8 H5 ^# R' \. f: s% {4 k
{ & X- D7 z! O  ~3 T9 F2 U
background-position: -263px 3px; 4 y* R% `0 a, l5 U
} * w9 J5 K" g6 p' g
#vcd ul li, #vcd ul li a, #vcd ul li a img
, l4 W9 ]: J/ }* c8 t{
- ~) X  s( l/ L# ?* mdisplay: block; 2 k2 F/ F- B8 p" ~0 o
width: 178px; % b8 [6 _  E; k: P4 N7 h4 n
height: 264px;
! T  q( {8 B' j, eoverflow: hidden; % s  c' ~: n" T2 g9 q
} 8 `; Q9 g, x$ u
#vcd ul li
9 G6 G8 @# Z1 G8 A) `  Z{
% g6 v6 ?; c" _* n( vtop: 5px;
# |2 l4 h& I0 }- Y1 jleft: 2px;   [- r3 L& e+ ?+ @
opacity: 0;
! k* h+ x) {3 o/*visibility: hidden;*/
4 d& m9 i, H' q, c3 M4 A-webkit-transition: opacity linear .6s; " g# n  E# N# M
/*-webkit-transition: visibility linear .6s;*/
4 j+ z* O6 E7 _' W-moz-transition: opacity linear .6s; * T* ~3 T" `' }4 }, m' p
-ms-transition: opacity linear .6s;
4 w6 U. T6 i1 g! ~$ D) Wtransition: opacity linear .6s;
3 p4 g+ M, C; ]9 d# Iposition: absolute; $ u' ^0 [" l" u: n; L
} ' A- o3 ?2 t6 Y) Z+ x
#vcd ul li.active
4 o  Y1 l7 @- A8 q{   E/ U. ]( L. s0 q3 ]9 B
opacity: 1;
7 s$ j( m! w3 F4 F4 J/*visibility: visible;*/
  Y5 f. ^* p) B. _$ O}
4 L( ]2 B. N0 x; W4 C#vcd #cd 7 o0 M% I$ w6 J, d+ o
{
! t" f5 N# H8 S7 I; N' Utop: 64px; / u0 x/ d& }9 [1 V& K+ @4 N; s/ O
left: 78px; ) r& F( o5 Q# g0 n: [7 y, Q
width: 146px; " m1 t2 x6 \8 V! Y8 v
height: 146px;
- x( U5 n! m0 f1 c# v  |) A2 S7 rbackground-position: -510px 0; & `! Z% p/ L. y8 i9 y7 H
-webkit-transition: left ease .4s, -webkit-transform ease 1.2s .44s; ! k* m: q: Q1 t! i. F& @9 M
-moz-transition: left ease .4s, -moz-transform ease 1.2s .44s; 2 a5 E  z9 q5 b5 q  x" o0 K1 J+ a0 V
-ms-transition: left ease .4s, -ms-transform ease 1.2s .44s;
* |1 k7 k) v5 ]# f, Etransition: left ease .4s, transform ease 1.2s .44s;
( W: f8 A6 q, ?, K: o}
0 Q6 U0 \. D. f- c#vcd #cd.switch
& l* \  P; h" o9 }+ L: j- n{
- ^* c6 l- B, R8 F1 U+ P9 I+ f1 fleft: 120px;
  W1 h4 Q3 a* D( V* S/ a8 u-webkit-transform: rotate(2520deg); & n$ e2 q) J2 g% p, g5 g2 R
-moz-transform: rotate(2520deg);
7 {' ?4 @( e! c( i2 v# Z+ {-ms-transform: rotate(2520deg);
# l+ y' k) \, ztransform: rotate(2520deg); 2 N1 i* ~+ v1 N" z  U
}
1 S/ x' |  T& I4 [#vcd #wrappager
" d: h, W8 z9 f# e6 s  Z  [/ l{
7 P% g1 j# \! |  g" |display: block;
, Z3 X; W/ Q8 X4 e9 o% Yleft: 0;
: ]- c! f2 o3 l3 V6 S8 l& k' ]top: 2px; # {3 U8 \% D4 n' J! i
}
! d' g) Y. S& l2 ^- ]#vcd #indexbar ; c7 `5 [3 M: r; @9 t0 L
{ ) ?" m; ]3 Y. q% c6 i; m
top: 235px; * E( @! C& c7 W- v
left: 25px; 0 ?  t5 y$ m6 l) v  g; o* A
text-align: center;
0 I: N5 u( a) c* }& X- joverflow: hidden;
; w  Y9 V( M8 `$ v" E3 _6 topacity: 0; 2 C& L/ o) j( r
visibility: hidden; 6 d# O8 R- B" _
-webkit-transition: opacity linear .6s; , e8 r0 [2 G( p( l% i# R/ ^% j0 D
-moz-transition: opacity linear .6s;
( E# @% t5 X* A6 |-ms-transition: opacity linear .6s; 4 v7 h6 Q0 c1 H$ k/ K( ]
transition: opacity linear .6s;
# h. _( [- @4 ]* u2 c. Xposition: absolute;
! Y8 F$ x7 C, W- Q, I- L" ]9 A7 H, G: V}
2 G) z  G2 s# }& @; i#vcd:hover #indexbar
0 Z( M4 J9 S7 p7 b5 V{
& ^; S; v" N) Z8 A# J" z! Z) hopacity: 1; 7 K+ O6 p  p1 |
visibility: visible;
1 L, [- i& s" q' J8 ]' ^1 w} + ~6 N$ E- d. \5 K# N8 y4 P
#vcd #indexbar a
% V  X# ]* ?" d4 f{
- H" _3 z/ _+ ^* P' Ldisplay: inline-block;
1 \+ d0 |2 i. `8 a+ J& cmargin: 0 4px;
( F0 Q, ?; O# a7 E" O2 cheight: 0;
- h" n4 |9 k! i7 [; g1 f/ _: }width: 0; # E  w; X+ l; r5 q, O
border: 4px #9f9f9f solid; % f' V, |# {4 o% {
border-radius: 100%; ' P1 n0 m$ w' Q
text-indent: -200px; 7 E* g5 |! Z! H( W' B
overflow: hidden; ) n8 o- `. e! F9 L9 H
}
) e3 Q8 l# Y" b" I. [2 [#vcd #indexbar a:hover, #vcd #indexbar a.active , ?- h' V  p6 M6 P
{ # k7 C. M' |1 a; R; m5 S
width: 4px;   E- ^/ I6 }% A4 s+ a8 O* y
height: 4px; / f9 \5 N: f) F
border-color: #05c7fe; & S' L% Y& G! o, l+ a8 f: p
border-width: 2px;
- v$ r! O0 E, v! G) ~}
% z; z# z5 q' U: J* B对于css大家可以照着敲一下,对于位置的布局主要就是依赖position:relative和position:absolute;然后大家会发现使用css3的过渡和变形:transition和transform 我简单提一下:
$ j( S/ M/ d$ q- ?. R  D, ~1、transition : left 1s ease 0s ;
% F* D; R! Z6 d: n( t; U) {5 @, o8 T参数1:需要过渡效果的属性,可以为单个属性:width,left等,也可以设置为all。
/ A# b5 A& a/ y参数2:过渡的持续时间 ) j9 {: [8 }" X5 J# N3 r& L
参数3:过渡的速率动画,这个大家有兴趣可以查查,就是先慢后快,匀速之类的。   x/ Z* C5 j% W
参数4:过渡开始的延时时间
7 i9 q3 d5 `6 H9 U: A+ C5 s" otransition也支持如下写法:
1 y( q) y5 `: H. Y( g. y5 N0 [$ wtransition-property:border, color , text-shadow ;
# N9 x* S1 A3 n2 p( Utransition-duration:2s , 3s , 3s ;
4 U! e9 t( n; K3 X: P2、transform支持几种变形
$ d3 a0 z5 t! I: M+ C% {transform:scale(0.5) 缩放 2 X6 h1 b" H% {
transform:rotate(90deg)旋转90度
3 s& h$ S  M7 v1 \6 ttransform:skew(10deg 2deg)斜切,矩形转化为平行四边形 8 O8 K2 M$ ^5 Q
transform:matrix() 这个矩阵变形 这个网站提供在线设计矩阵 & N# q. h/ T1 j# j8 l  \  d
transform:translate(40px 20px)平移
' x2 x7 S$ |4 B4 k例外提供了:transform-origin:20% 20%;用于修改变形效果的起点,默认为重点
7 k6 P/ ?( h8 k当然我们这个例子用的是旋转,也就不用修改变形效果起点了。
! t8 d. T! ~$ {, L# |5 B  W- v9 x% o6 f
最后是js: 2 l+ x$ k+ h  M9 n/ S) n
代码如下:
2 j4 Q5 M% P  N& Z/ h7 N4 T( f
/** & m3 M  G+ E) t6 N
* created with jetbrains webstorm.
  d5 I, r/ V5 R5 D, P7 F* user: zhy * U/ Y+ k! Q+ F( L# H5 }
* date: 14-6-15 4 v0 k, E0 Z% R
* time: 下午6:26 6 P: A* h" j0 N4 Z! l! f! H2 j
* to change this template use file | settings | file templates. $ c& _! ~- c" x) k5 J: n
*/
7 u% F/ }% f* `& E  l; Yvar vcd = {
, O. \" @' W" [2 W& p) I9 B/**
/ e# j$ f3 d& o3 R/ f. i* `* D' U7 a* 常量 3 j! r) k/ ^' t; |. R, N1 b
*/
' V. w( ?/ J- h5 m7 m, D0 w1 Xid_vcd: vcd, 3 x7 D7 O6 N3 |, Z! f- g5 e8 H
id_indexbar: indexbar, 6 m; S; P; m6 u7 t6 [8 h* d
id_cd: cd,
% |. x, H! v& @$ pclass_active: active,
7 }1 W1 k! T- Y; {* {class_cd_switch: switch,
7 j( x+ C, j, v8 ^* f, Hcurrentindex: 0,
' Y  d& p8 n2 ~8 D2 n* R' E! M7 [isrunning: false,
4 Q! L9 Y2 s& n9 Q$ Ktimer: null, ' ]- S" N& z! y
init: function ()
% o7 Q! C+ ]! c9 j# h( k  X{
1 h" T$ B! C$ z, ~6 v" F; S/** & z& p1 b7 ~$ ?' `( A
* 初始化数据与事件 4 e; ?5 f. y" Z/ O
*/ 8 R0 a1 c0 t& q: O6 E
vcd.vcd = $(# + vcd.id_vcd); 4 L0 \* E# h" m& u* n% M2 F6 l
vcd.cd = $(# + vcd.id_cd);
  A4 e7 k: ?1 T/ Q' \vcd.imgs = $(li, vcd.vcd);
) s+ b" S9 h/ e, k: qvcd.indexbar = $(# + vcd.id_indexbar);
6 p+ W+ f3 Z) n& D7 o& }8 ]3 l  Mvcd.vcd.mouseover(function (event)
4 Y6 d4 {3 E" G! }/ t/ j% g{
" g" W0 X( h3 R0 [" Tclearinterval(vcd.timer); ! y# n7 b5 T) [7 L
});
, ~7 R+ y+ D5 h5 A7 j9 ivcd.vcd.mouseout(function () $ d' R, A: f, t, W5 q
{
' s6 O4 w- y4 @( i/ N( j. [+ a; Pvcd.autoplay(); : ]" A2 i2 `  t  S2 R
}) " E2 E# l( B4 w" Q
;
% y# ]/ b4 h; I, f# u- C$(a, vcd.indexbar).click(vcd.dotclick); 9 Y8 q6 s6 M1 Y/ `  [" {- }
},
8 g0 T  _$ T" o* T+ m/ }) g9 {4 I4 i/**
1 P$ J+ \$ ~+ n* 按钮点击切换
3 y# E3 D& }7 j  e/ \* @param event
0 R+ i! T4 q1 h$ B* i! Y*/
* ~& O8 F; ~! L4 N9 \dotclick: function (event) ! K/ g- S7 H- i3 H/ B% \" t2 Z
{ * ?  W* H1 k5 }! |0 X
//如果当前动画还在运行,则直接返回
/ k* D, R' V  v) p% R* vif (vcd.isrunning)return; . d: N' O& C7 f5 R% s: {. ~
vcd.isrunning = true; ) m5 `  u0 ?$ Y1 p: j
$(a, vcd.indexbar).removeclass(vcd.class_active);
9 ~0 ]$ P# @* C9 E- \$(this).addclass(vcd.class_active); ; W! B! S7 s" Q1 N- K* x# F% l0 q; ?
vcd.currentindex = $(this).text();
0 ^+ A/ X* W( M4 xvcd.cd.addclass(vcd.class_cd_switch); 2 p6 }; H0 _& a9 `# s
settimeout(vcd.resetdotclick, 1500);
6 u! [7 u) y4 W, Q, [event.preventdefault();//阻止a的默认跳转页面 # E; }) T4 |( W$ F' U6 o
}, 4 @% [- T2 w3 A' \
/**
7 b5 Q9 F" T8 m0 ?* 当cd动画结束后,更新图片 0 Q# _2 w8 R3 ?
*/
5 o  S3 h, A3 P8 s! R9 \( X9 eresetdotclick: function () % p% B' a; T; N$ b+ |0 `
{   ?; _, _+ C9 ]/ ]1 q) _7 p
vcd.cd.removeclass(vcd.class_cd_switch);
: ~& u3 u1 v2 f9 s  {vcd.imgs.removeclass(vcd.class_active); ! k+ e9 ]+ s+ H
vcd.imgs.eq(vcd.currentindex).addclass(vcd.class_active);
5 G0 l  P- V3 u" i, |' ^vcd.isrunning = false; $ @) }2 Q: C3 K5 W4 n% z( C
},
; G* @& X* J( i9 O  Y. E6 b, aautoclick: function () 7 }) U$ S, ]" b" M: @7 g: x1 o
{ # A+ m) O+ k. }. {* u
var as = $(a, vcd.indexbar);
; b+ r- v% R; r0 J8 Lvcd.currentindex++; - J4 k8 y( X) R1 w6 R0 r; g
if (vcd.currentindex == as.length)
% ?/ }! H( _$ a5 p{ 1 P* ]& Q% P2 Y) W8 T$ U/ B
vcd.currentindex = 0; ) x  r3 Y- t+ `+ v) Y5 W' o5 A
} 1 O6 q. v+ p. V8 b( k
as.removeclass(vcd.class_active);
1 G( ^( q4 N' V2 d* Y' oas.eq(vcd.currentindex).addclass(vcd.class_active); ! W5 B. h# Y$ ~9 ~6 s6 i
vcd.cd.addclass(vcd.class_cd_switch);
/ y6 X5 _" L2 o$ N) T' M; Vsettimeout(vcd.resetdotclick, 1500);
% o$ b& f1 E/ l+ D' v; G) Q},
) x3 d4 Y1 f, H1 D) [/** - I3 a& b& P  x/ S2 h0 ^; O8 b) c. p% w+ f
* 自动播放
4 g; g8 u  r- u6 z*/ & C  H; \/ v( t
autoplay: function () . K3 g0 [4 M! k& \, i
{
. ~4 O, V) V* Y( `$ \' \5 {vcd.timer = setinterval(function ()
4 W% K2 g$ W1 ~4 C" d/ V+ @, M" x{
- @4 q  H4 t: X* A% M& j+ Lvcd.autoclick();
, E; R# a# s* q) J! l" g}, 3000); $ _" g/ D- _) P3 a
}
2 [' e, e+ R9 V% R) C}
$ f1 k2 W0 u* x& b) f( A: K0 `; ' G0 ~( v; h5 w. |" z* S, `: \
单例的写法,定义了一个对象,然后用户通过vcd.init() ;vsd.autoplay()调用、
! T6 n2 Q4 F% j8 j# d* `代码如下:
; r: Y) D$ y3 @. Q
<script type=text/javascript> * m, L# S7 z  H3 ?
$(function ()
! l8 M" q% Q3 Z2 H( h{ / \8 Y# K) l5 n6 ~
vcd.init(); & p  k, s- `- W
vcd.autoplay(); ( X  M! M/ R# p; i5 j( I0 h  A
});
0 c& P2 C7 J, ~4 L3 D</script>
$ n* P5 y$ _2 u" j) e% `1 ]重置的css我就不贴了,下面我把源码提供给大家下载。
' M) u! F, b. x0 j! S+ q( Z( {) |
0 {8 g; r) z) V; G! ]+ I更多网页制作信息请查看: 网页制作

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