先看下html:
# _) v+ I# L& T1 m: U9 a- v3 p' T代码如下:' ?7 Q V q" w! _
<!doctype html public -//w3c//dtd html 4.01 transitional//en 9 `% R |: H& ]. w+ Y3 Z; ~
>
- x/ R/ S1 y2 }& i* ~<html> 2 R$ u4 k3 |/ i' m1 |
<head>
; v1 j7 O2 U8 O$ K' {<title></title> % ]: a$ Y: \. f! G% A# @
<meta content=text/html;charset=utf-8 http-equiv=content-type> ; b m1 T6 {' {+ u3 L9 K
<link type=text/css href=reset.css rel=stylesheet> 2 J4 m4 |6 S- T. d1 b
<link type=text/css href=main.css rel=stylesheet> W* }' F. d/ d4 e% g7 h
<script type=text/javascript src=../../jquery-1.8.3.js></script>
* y1 q; k: Y4 l9 R<script type=text/javascript src=vcd.js></script> ' E' e: |. H$ w; u2 c. X" P8 J# p5 A
<script type=text/javascript> ~4 n8 h V8 G# ]( A; ^& H
$(function () & T0 \$ L) T) _* F4 J
{ 5 |8 E$ D8 N" ^9 ?9 ?
vcd.init(); 3 g, [8 U% f& i8 h
vcd.autoplay();
% e9 V1 R1 m8 l e! n3 ~$ ~});
3 L& x5 {4 v2 [9 Y# D, F</script> * X; [) S; m2 P+ D7 y7 h
</head> 2 X/ g, A9 G e$ X3 ~' T( D
<body> * o6 B, y% z/ Z1 e: P! L, X
<div id=vcd> , x9 X& @# m, b" o2 @
<i id=cd></i> - |; R. n$ V; Y+ h% ~1 `) U( V* c: A
<ul> : P" [$ `3 v6 P5 }
<li class=active><a><img alt=超人归来 src=ad/1.jpg/></a></li>
& e: K8 T% G$ w, U" ], Q, w<li><a><img alt=超凡蜘蛛侠 src=ad/2.jpg/></a></li> " F# j u" g' P, b R! ?6 z1 r% L
<li><a><img alt=黑暗骑士:蝙蝠侠 src=ad/3.jpg/></a></li> $ v6 H3 M2 F q# ^# W
<li><a><img alt=美国队长 src=ad/4.jpg/></a></li>
9 |$ g6 g B" [; l5 r, f; q2 E+ a, E<li><a><img alt=雷神托儿 src=ad/5.jpg/></a></li> * w! |' `' ^# J+ w
<li><a><img alt=金刚狼 src=ad/6.jpg/></a></li> ' O0 m T" A9 z1 V' ?9 T! C: a6 g
</ul>
/ J4 S3 ]3 ?4 F<a id=wrappager title=超人归来 target=_blank></a>
* m4 M- C, w7 x0 \7 g1 X<div id=indexbar> & O9 {& z8 [) m- D$ F6 K& ^: `
<a class=active>0</a> 4 u6 X- v2 T9 W% I
<a href=#>1</a> ( p8 E, K* z3 R! o% J4 J
<a href=#>2</a> 2 A2 m6 B' B; B; c% ^
<a href=#>3</a>
2 k* ?7 w; k4 g a5 b<a href=#>4</a> " V% D% W; O1 Z& U3 s7 L
<a href=#>5</a> 3 v k& O8 M5 n
</div>
) j& v3 I# w9 f1 f F9 I% k; y/ t</div>
# Z7 u* t6 O, L</body> 6 B" O9 _* W7 ?4 V' R& t
</html>
, [3 @2 u( F% |( _% Z/ t可以看到div#vcd是最外层容器,给它设置了一个背景;ul li 分别设置图片元素;i#cd设置背景为光盘,然后设置显示位置;div#indexbar中显示图片的索引,供点击。 3 t2 m+ B8 n# m/ o* Z. f
css: ( [+ f" o& G+ F
代码如下:
: {; j5 ?/ L% K0 T4 V8 ?0 y% n#vcd, #vcd ul, #vcd #wrappager
8 h0 Z5 \# I. j{ $ l' N0 L- X& z V7 L: u
width: 200px; + a1 X6 }+ X" I4 s! P
height: 272px;
- m8 X' x; f/ H& I} 5 y( f A5 p7 P9 Y0 b( N
#vcd, #vcd ul, #vcd #wrappager, #cd ; _* r, n6 A, h
{ 1 W. j* L$ w# j4 E/ e
background: url(images/disk.png) no-repeat 0 0;
, b' J: S2 r' f) a5 B1 B1 m* [}
; {$ l/ [, s7 E+ K! e#vcd
3 E$ F+ L0 q! ^- [" [ O{ 1 P* k: s2 c" D0 [8 S; e
position: relative; 5 f* @1 L- I; c9 y; d
margin: 20px auto 0;
2 x2 i+ _* ^2 I! @" w5 h6 K} ) ~3 ^9 w+ c- D& U1 w
#vcd ul, #vcd #wrappager, #cd : y4 a* A2 }/ O" c! B) f* k4 t# ~
{ * }7 }! o6 S' ?; u+ h
position: absolute;
- I$ h; p+ e8 O. ~8 `: Z8 b! h3 h}
4 O; h5 S, d9 ?$ J#vcd ul ( @& ]( o4 {# ~2 O) X0 k G# }
{
1 b! O( A# }: t5 nbackground-position: -263px 3px; 5 o% t: f$ l/ o2 ?6 \, g) v- W
} - ~$ {7 E* i# c
#vcd ul li, #vcd ul li a, #vcd ul li a img ' A9 Z+ Q4 H! V6 N M
{
! Y5 b5 d3 Y/ b! p8 N- t, d8 cdisplay: block; 8 Y# N1 D, y1 g
width: 178px; : K- q6 Z! `5 E+ |3 f9 ^8 y% ~
height: 264px;
; L( z! \" a* Voverflow: hidden;
7 W+ p- a( w" i8 Q. ]}
9 W/ K7 S6 S! X9 S" C#vcd ul li 8 _/ K0 u/ u+ s
{
/ z: k1 N5 Y: j; Y$ Q, btop: 5px; : f$ o2 ]( S( ^" i) S! n3 v: G$ e0 s& w
left: 2px;
3 S( k( F4 l# R) |1 V% Iopacity: 0; / M3 K/ t x1 L- Y/ Y
/*visibility: hidden;*/ 4 s& l* I+ k# e! w, J
-webkit-transition: opacity linear .6s; ' z, i6 }+ X$ K4 R! S1 p
/*-webkit-transition: visibility linear .6s;*/
8 [+ ]4 Y3 n! {$ G-moz-transition: opacity linear .6s; 5 _. a1 x% ?$ k5 s
-ms-transition: opacity linear .6s;
0 Q0 K% R/ h) e4 Z: o: D) C# jtransition: opacity linear .6s;
- W7 d% P" q# f" }position: absolute; 7 T, G" J8 d" U7 i5 f
} 7 q a3 p+ Y/ a' A- Y3 t
#vcd ul li.active
8 S1 j8 T) n$ ~& }8 z4 {- Q- |{
& D( F6 K+ {) [1 z6 k7 ]opacity: 1;
- _9 O$ y# d3 V$ e0 {! t! b I/*visibility: visible;*/
6 p; l, v3 ~4 l}
( B( n1 ^& V( t# N% Z" a5 Q#vcd #cd
/ E' _! J$ E3 n# D9 @{
4 r5 N1 G( X/ H! l# T# Atop: 64px;
! \0 ?7 R( C6 b% W- w; y& b0 A. dleft: 78px; 7 z! t8 X! Z& u0 m$ k& R$ K
width: 146px;
7 h5 U- O8 v( i- E1 m- z, M/ G" Pheight: 146px;
, S" X+ z" V8 K# h) @background-position: -510px 0;
; P9 j9 B! m2 h* h U-webkit-transition: left ease .4s, -webkit-transform ease 1.2s .44s;
) S2 j: Y9 f6 _ N-moz-transition: left ease .4s, -moz-transform ease 1.2s .44s;
) W3 w' O8 F E# u) c6 C-ms-transition: left ease .4s, -ms-transform ease 1.2s .44s;
% @) o( {- |( a+ I" [/ p1 q: btransition: left ease .4s, transform ease 1.2s .44s; 6 I( { \0 q3 a" X, z% g
}
% \" c4 |6 {+ l9 `#vcd #cd.switch 3 y6 d0 D, D4 X( y
{
2 ^! Q/ ~, ?" p3 Oleft: 120px; # l/ X1 g. a) K; H b/ p1 m, o
-webkit-transform: rotate(2520deg); - b. m* p% I$ R2 ^% F8 c
-moz-transform: rotate(2520deg); T* f- G& F$ ]. L; y k
-ms-transform: rotate(2520deg); . n, @# k# v6 f$ Z* i
transform: rotate(2520deg); 1 |3 A6 ^% i1 G6 v3 u; e
} $ ?* Y2 ^0 C. K5 S- `* |
#vcd #wrappager
/ q( H, B, y: ?. Y( \* w{ * p8 V9 `7 y9 v. [# R6 f) Z
display: block; . k, n5 C! G: l. } W
left: 0;
9 t$ A' |; \5 F; j/ rtop: 2px;
. z6 R( Y$ j& Y1 U( `' @}
5 t/ C) Z3 g6 c1 h& } A$ q#vcd #indexbar
4 e3 U0 {* z7 i* c; x{
& {' L! D; P+ \$ N+ `top: 235px; 7 r6 {8 Q/ y' ]$ l0 \
left: 25px;
- v" ^6 S6 z' `2 z; G6 ztext-align: center; * J* j# d* k- X. Q8 P$ l
overflow: hidden; " f! v0 Q8 c7 t( h# C
opacity: 0;
5 |5 e5 s% n2 @- F6 \visibility: hidden;
8 V" E z$ j8 h$ h-webkit-transition: opacity linear .6s; % ~$ ^" h' u5 H% u7 i1 W+ X1 C
-moz-transition: opacity linear .6s;
7 g1 g- W. Z9 [-ms-transition: opacity linear .6s;
2 r0 x7 [. q7 j' xtransition: opacity linear .6s; # Y8 `1 ], w& _0 Z% ~' Z; ]) X
position: absolute; # E+ _! e w2 n) w4 g( w
} 5 o5 J9 h" }0 @% O2 s
#vcd:hover #indexbar * h3 @& k# J" J
{
/ U1 f) i' ^# M" g5 V7 V0 E, C$ m% zopacity: 1; 1 r; P( M7 I* @: x
visibility: visible;
/ v* ^0 I7 f! u% |9 h} ! j) s) c' c$ a4 }% C
#vcd #indexbar a
( H8 @4 z: b+ t$ [5 i2 U7 p{
% E' l0 u/ W4 `' r5 p$ adisplay: inline-block; # w) Q& {& x2 {" w
margin: 0 4px;
1 b8 k5 @ J. _" s" gheight: 0;
; a5 f$ ?) F8 F1 awidth: 0; 3 v& }3 R/ A! ~; K
border: 4px #9f9f9f solid; 9 ^ {/ _1 W5 J, D
border-radius: 100%;
5 g' h/ p3 Q( H" X* Gtext-indent: -200px;
( p. a7 o ?* Z; }! M& Yoverflow: hidden; : n: t4 K& J# A, G0 P+ ~
}
1 l7 _" `5 a6 k, Q" S9 o4 R! f2 H#vcd #indexbar a:hover, #vcd #indexbar a.active 4 _7 A& C1 U6 d) ]7 N
{ " _1 }2 S) f( b3 h& h
width: 4px; : o+ E8 Y* ?: J' k
height: 4px; " x' D% P8 ?. W# u# D& Q
border-color: #05c7fe;
9 z& C+ b. \ l0 k2 ~$ Y/ c( |border-width: 2px; 6 u4 D0 W2 m& S' j+ W) M/ R
}
: X x; e4 |, L7 u对于css大家可以照着敲一下,对于位置的布局主要就是依赖position:relative和position:absolute;然后大家会发现使用css3的过渡和变形:transition和transform 我简单提一下: , N, i8 i9 O0 s# M0 n" u
1、transition : left 1s ease 0s ; ) X- T: \6 C9 B- n9 Z: ?
参数1:需要过渡效果的属性,可以为单个属性:width,left等,也可以设置为all。
/ }5 K% h( ?8 e+ t" f参数2:过渡的持续时间 y, v1 m5 c0 u; _0 G' V, O
参数3:过渡的速率动画,这个大家有兴趣可以查查,就是先慢后快,匀速之类的。 4 l4 Y/ \/ q: @# W/ R1 U* J4 @8 E& l
参数4:过渡开始的延时时间 1 l% K# |$ Y; L4 @. p; Y7 p
transition也支持如下写法: & `# }3 a4 s1 _6 y. W# Z
transition-property:border, color , text-shadow ; * d. R3 b5 H6 ?* q* H5 T; ~
transition-duration:2s , 3s , 3s ;
3 [; Q* J) g0 u# F% e" v2、transform支持几种变形 3 K: ?1 X6 B* l, C# r
transform:scale(0.5) 缩放
" d0 k+ n* B' C5 X) Xtransform:rotate(90deg)旋转90度
- G* F9 o/ d" u: Otransform:skew(10deg 2deg)斜切,矩形转化为平行四边形 4 R! W1 ]( l! U! `0 \" _0 L
transform:matrix() 这个矩阵变形 这个网站提供在线设计矩阵 & l: l- g' [8 p' C' a
transform:translate(40px 20px)平移
8 r% h( i" R% D; y& i% T例外提供了:transform-origin:20% 20%;用于修改变形效果的起点,默认为重点 ! _0 X7 J8 V6 R/ `
当然我们这个例子用的是旋转,也就不用修改变形效果起点了。
8 o6 I9 Q7 a* Q% ?5 C7 n" k; ]
8 p& p6 G5 ? J( L& k最后是js: ( [0 S; N0 E0 ?8 x: }+ c6 q
代码如下:
8 I, x( y8 }- ^+ w3 \( r/**
8 H( q1 o4 g8 M2 w; n: B* created with jetbrains webstorm.
1 P3 E, A0 K' }1 d+ t0 K* user: zhy
! z1 f1 k- {" N- B8 \. m& g* date: 14-6-15 2 f4 i& F3 d% e3 L7 ]
* time: 下午6:26 9 q: p; g# o& ?% V/ k6 ^
* to change this template use file | settings | file templates.
6 c, Z4 @6 j# b l( i*/
/ I1 M4 @% B: V* m2 i5 ^4 Gvar vcd = {
6 b, R& k/ k& I, z+ q- a. U" @4 v0 o/**
3 i' a) t3 T) M* 常量 7 t0 T, Y2 q0 X8 z5 ?
*/ Z. g' j* H2 m! u6 r2 C
id_vcd: vcd, 7 u% T1 [8 w1 r7 b" R1 f
id_indexbar: indexbar, 4 `9 `9 y+ j+ _) @: a7 k
id_cd: cd, 9 _* w' f8 H/ y/ p: [% T
class_active: active,
: G. p! J* _3 C B) _class_cd_switch: switch,
( g; |: ^8 _9 E" y& {currentindex: 0, ( `' h9 h" X1 ]/ N
isrunning: false,
+ W9 Q6 i- J7 f% [& R, y. wtimer: null, % N& R: u& ~8 L8 H3 _2 b
init: function ()
! S3 y$ a- l: A5 w( c) U{
1 }! Z2 w8 [5 Q4 m/**
: m, A/ A, M- k( F* 初始化数据与事件 ! v9 ~. ]5 c" ]& J$ b
*/ " K* l7 s8 A+ d5 B8 |% a+ U* r
vcd.vcd = $(# + vcd.id_vcd); % B3 D( s8 `0 E. }& F# \4 B( N
vcd.cd = $(# + vcd.id_cd);
9 F9 G+ W9 D4 u/ ivcd.imgs = $(li, vcd.vcd);
* @, c5 C4 T) s# m z) l/ evcd.indexbar = $(# + vcd.id_indexbar);
% F2 r# S1 E8 T& ^+ ?vcd.vcd.mouseover(function (event) % | C9 \8 u& I8 X: _3 X+ r$ M- w* n
{ . L9 b+ \, E7 y! `4 v
clearinterval(vcd.timer);
9 a8 F* X0 V+ u, A0 C});
1 P! s. S% m/ y" P* Ovcd.vcd.mouseout(function () 9 p$ N& z6 ]$ e% @
{
# v b6 ^. J% q; f8 @vcd.autoplay(); 5 N1 |/ j! W! h' B, Q1 s% ?& g
})
" s) S9 B* j; N; y# }+ W* m; & J0 F$ f6 O0 b& l G
$(a, vcd.indexbar).click(vcd.dotclick);
3 Y* Y3 D r8 f% R) f},
4 K) ? z! l' h# ^4 p8 e/**
& t* u' Z8 R: F6 W- G( g D3 m* 按钮点击切换
, W% l8 D5 o+ R+ j$ ^! T% m* @param event
' @" B) P7 ?9 u+ L9 o+ v*/ ; s) i& o/ g# Y: m, r4 p2 V
dotclick: function (event) 6 ?1 Q1 |: s. q- X: V
{
9 c( u5 h \& k. m//如果当前动画还在运行,则直接返回
' i6 ^# F* p4 [; F! x `if (vcd.isrunning)return;
( x: x+ u" g& b( e2 I: b: Qvcd.isrunning = true; 1 s& k5 `- ^/ Y2 Q, b: z
$(a, vcd.indexbar).removeclass(vcd.class_active);
) f# U2 B B+ l; A) @- C6 E$(this).addclass(vcd.class_active); 2 t5 }+ z4 D) B" L8 ]0 Y m: j. V
vcd.currentindex = $(this).text();
% T/ v$ q$ k5 Z9 O$ m5 _vcd.cd.addclass(vcd.class_cd_switch);
4 x; W! _ L1 Q: i; D: z% n" y, dsettimeout(vcd.resetdotclick, 1500); # T# z1 c1 h3 I- H
event.preventdefault();//阻止a的默认跳转页面
; ?6 O( o/ r: C3 D7 l5 x}, 4 N* o& e2 a+ y2 y- [* K P
/**
% r! F) ]8 f1 P' V# M) C* 当cd动画结束后,更新图片
" m5 s+ S8 T3 e3 b6 R*/ % h9 e, W! f5 x9 B4 ]
resetdotclick: function () 1 I6 j6 r6 O# z$ p' n. C
{
7 p# j9 d) L' b. @6 w2 A9 k' [vcd.cd.removeclass(vcd.class_cd_switch); ) Z0 d+ |/ W% k8 @/ \
vcd.imgs.removeclass(vcd.class_active); & T f1 _ T! S- Z# X
vcd.imgs.eq(vcd.currentindex).addclass(vcd.class_active);
( G4 n+ Q. V; R# b5 ?2 xvcd.isrunning = false; ( P' a+ r s/ {6 v6 Q- q
},
" O0 `/ d! B) v: H- q9 Dautoclick: function () . a: ]/ u) \( r+ y, M
{ ) O( x& j4 r/ U$ Z- c
var as = $(a, vcd.indexbar);
7 Z: W/ J, X; T* svcd.currentindex++; 8 ?# A- f' s. |7 n7 u7 C4 y
if (vcd.currentindex == as.length)
( |: K% Z; `1 q( u$ q{ . y1 G4 @5 @, r: n, w8 t& D6 Y1 Z
vcd.currentindex = 0; # I, K8 K1 }' S9 L2 n8 G5 m A9 R
}
% e: ~" J0 @+ K' Q. @. das.removeclass(vcd.class_active); 0 K+ ~& O4 ?$ I4 M# j; w
as.eq(vcd.currentindex).addclass(vcd.class_active); 3 T1 M5 E3 V7 a# H
vcd.cd.addclass(vcd.class_cd_switch); 8 N5 L( l' D8 T: w, b! T& X8 j
settimeout(vcd.resetdotclick, 1500); " i% A3 y+ P, v' `; l
}, / E: T5 n5 P2 O) w' R8 ]+ V% B
/** 3 Z5 s& l! i6 Z1 \( I% e7 P0 D
* 自动播放
9 C5 ]1 N% B+ R# D% @*/
% @/ U0 d! \1 j; wautoplay: function () 2 R8 m6 x# f! c9 w- J' u v
{ 6 R9 E1 `" a0 V
vcd.timer = setinterval(function () - R7 h4 T1 W4 f/ p
{ 1 u. {& u+ \0 U
vcd.autoclick(); 0 F" ^* y+ T5 Y: F# W
}, 3000); $ O) O1 M# n4 S! O. |
}
% c6 b* |; h0 v; g} 7 ^6 b* ]% _& k; g) w4 I
; ! K* ]' }7 L- g
单例的写法,定义了一个对象,然后用户通过vcd.init() ;vsd.autoplay()调用、 , z0 m$ ~: p8 n
代码如下:7 m0 M" |9 |# L: z% L9 {# K$ s, s5 }
<script type=text/javascript>
6 K! Z! y7 E" L* m) S0 E$(function ()
2 C4 S3 v/ i. ]7 X. P; K{ 9 ]7 x; o: ?* T
vcd.init(); % L+ \# y6 I% |0 |2 A4 R) x
vcd.autoplay();
1 m) v7 ^9 X8 P$ g: L4 ?});
8 N; ^2 w* x: g5 I& s, `' R</script>
4 l# h$ G0 ~. L( ~$ Z0 ^ P& o8 j( u重置的css我就不贴了,下面我把源码提供给大家下载。
5 Y7 g9 e& W" G1 K" M: ^6 J. `5 J
3 o# @7 p3 Y5 o& R+ O U! D更多网页制作信息请查看: 网页制作 |