先看下html:
0 m" g- N. a; Q6 ]$ ?) S3 G M代码如下:
% _0 P# d# j2 e5 f8 m( e<!doctype html public -//w3c//dtd html 4.01 transitional//en 5 d% j: X( U& d; \( r- Q
>
2 C% R) o' f7 `& p<html>
/ z; c# b- i7 m) \<head> + G( S% ?% p& ]/ U) E
<title></title>
" p$ [2 m5 P+ D$ y3 ^' H6 h<meta content=text/html;charset=utf-8 http-equiv=content-type>
" s0 F+ P/ X/ m7 ~<link type=text/css href=reset.css rel=stylesheet>
* L# y9 o( A2 l1 S<link type=text/css href=main.css rel=stylesheet> - {, ?2 g0 e. j2 b6 k2 L% x% R! E& ^) [
<script type=text/javascript src=../../jquery-1.8.3.js></script> # Q8 S1 ]; L" q" N5 z2 b
<script type=text/javascript src=vcd.js></script>
! m7 R- W* a2 I! |<script type=text/javascript>
3 {( m% f! O; a( j$(function () / o+ d3 p6 \( z1 d- W
{ / K8 a# n$ H* s& J
vcd.init();
) }5 Z8 l' B" J: Y7 M* dvcd.autoplay(); , b" x6 |; }( G1 b
}); ' H, I# v' z- j$ r) [
</script> m- X. m4 o# T- s$ s" n
</head> # k# q* W; P; _5 P* F
<body>
9 s$ A/ f8 R, B V; h<div id=vcd> 9 G3 l2 M' {( E3 q3 L! s
<i id=cd></i> - [) y% t+ \$ }* h* d4 J4 G: F
<ul>
- y/ |5 G; e2 W5 @" ~<li class=active><a><img alt=超人归来 src=ad/1.jpg/></a></li>
! Y6 h3 N7 y% y8 S7 H<li><a><img alt=超凡蜘蛛侠 src=ad/2.jpg/></a></li>
, T. {% Y3 A* I: R<li><a><img alt=黑暗骑士:蝙蝠侠 src=ad/3.jpg/></a></li> 4 J5 a; a* F5 P; ?& C, ^. H" [
<li><a><img alt=美国队长 src=ad/4.jpg/></a></li>
/ m; a) @+ i8 s! _ ~( h# Q( l<li><a><img alt=雷神托儿 src=ad/5.jpg/></a></li> 7 B9 g6 M) o7 v, b/ o
<li><a><img alt=金刚狼 src=ad/6.jpg/></a></li> ' O4 W" o/ i4 S. M2 O
</ul>
' x; M5 ]; W3 [0 U) f<a id=wrappager title=超人归来 target=_blank></a> ( n2 j- e/ q7 r
<div id=indexbar>
& m& x9 ~0 R; Z; j9 U; K! V1 O, W/ Y<a class=active>0</a>
: d* B! v" g$ y c# [3 R/ h<a href=#>1</a> ' i$ e. |2 k/ r
<a href=#>2</a> ( F) L5 o" ?: B% A
<a href=#>3</a> , d, J3 n. y# n3 Q
<a href=#>4</a>
; ]9 q' A" b& e9 x7 [8 N<a href=#>5</a> # L! e7 }) m) h4 _5 l7 \
</div> $ I0 J& @6 u9 |2 v; J
</div>
3 z6 ^& i% t0 t$ z9 [</body> 6 N1 y; t k9 D/ |
</html>
& f; `( O) J' g, x: V% D可以看到div#vcd是最外层容器,给它设置了一个背景;ul li 分别设置图片元素;i#cd设置背景为光盘,然后设置显示位置;div#indexbar中显示图片的索引,供点击。 % a2 l2 y7 u. Q* `7 s* r9 F
css: ( T( o* `7 G0 Y
代码如下:
) r$ Y+ Z5 t4 W6 x; V' Q; s, I# g#vcd, #vcd ul, #vcd #wrappager
& n, O, c1 X# F' N{
# Y$ c* O7 M) [2 c" \width: 200px; * Q' V/ \6 H; l. z- n) L
height: 272px; # Z! f6 u& V% v
} & t( X! h$ U ]/ t) q& w! d
#vcd, #vcd ul, #vcd #wrappager, #cd
5 E8 w" k5 E7 ^# [5 j8 Z# d6 E) E{
" _3 B. ?; `. H+ zbackground: url(images/disk.png) no-repeat 0 0; 5 h5 i2 r4 m! S0 @7 A/ c9 d& [
} # E6 q; L, `: K
#vcd
# L# @1 j. y0 }3 h& X2 K{ ) U% ^' d6 ?! m; _' O3 T
position: relative;
8 |; m1 b& w/ y* Wmargin: 20px auto 0;
) O; j |4 ?9 w# ^8 }" L} # P. V, ~" l% E) o" S; D' o4 u' \; R% X
#vcd ul, #vcd #wrappager, #cd
- R4 e8 M1 l( W8 C; y5 L! e{
0 i( \# U3 U9 A) Kposition: absolute; % }0 L, u' @% J& v% g
}
6 n: L* x+ U6 u#vcd ul $ J3 N# }" v3 W' |9 |' g1 o
{ + P% S) S0 n) t- D) L
background-position: -263px 3px; 1 [2 A0 T4 }. ~1 q4 I& k" w- L8 g) n
} / u" w9 k# T3 C) y
#vcd ul li, #vcd ul li a, #vcd ul li a img
E6 Y+ j8 r$ p8 L{ , V, q! f' N& ^4 L7 F" r
display: block; 5 w1 f- `6 s" W- o5 ^
width: 178px; 5 P# P* m& N/ C% D9 i* l( A
height: 264px; ~3 a* ?0 |: A8 U9 v2 T
overflow: hidden;
" `3 u$ V! F9 z+ {- l5 S} / J+ | Z! m4 _* ~/ S2 O& t
#vcd ul li
9 g7 u2 H3 ~, t, f* n4 [! V+ R+ L6 V{ & Y/ ^: ?$ b n/ S
top: 5px; % P3 s; C. B, K6 Q. I
left: 2px;
% z5 @! A, A7 `/ n: Q. ]opacity: 0;
6 r2 f8 p1 T. f X/*visibility: hidden;*/
3 S' C9 l5 P9 u' L5 e" l-webkit-transition: opacity linear .6s;
* O# _; V: H# `, I; }, z, F/*-webkit-transition: visibility linear .6s;*/
- ~- k- Y+ N* Q. k- p- W- y9 ]-moz-transition: opacity linear .6s;
$ B5 L1 r! _& o8 m9 n. O-ms-transition: opacity linear .6s;
- Z# {' Y! h1 r4 r: ?transition: opacity linear .6s; _1 S) x* a/ f2 u9 u* x
position: absolute; 0 O7 t$ ? I" o" D* y
}
- D A3 n( V m: [9 S+ H#vcd ul li.active
$ ]. p8 x& |4 Q- W1 T3 Z, R{ # \7 u4 @9 v- @' m
opacity: 1;
* f2 D& {- o, {/ a! i/*visibility: visible;*/ 1 g/ P) N" v& B4 s( r% V
} 7 }, q) `: S u8 R
#vcd #cd / h4 K6 v5 e! x3 V3 c
{
, w' ]* D: @& i# Mtop: 64px; 3 U5 Z) C1 \, z- D: I, U
left: 78px;
6 A8 a2 L% ?4 swidth: 146px; 6 i) d2 c* W; p% |7 U# T" l" ^% ]
height: 146px; 9 F* H& P' L- A4 @
background-position: -510px 0; " w3 Y. T8 @6 c
-webkit-transition: left ease .4s, -webkit-transform ease 1.2s .44s;
1 u/ W2 [/ v x8 v" @-moz-transition: left ease .4s, -moz-transform ease 1.2s .44s; 3 X; B B# W+ n# j7 q
-ms-transition: left ease .4s, -ms-transform ease 1.2s .44s; 6 F$ x) H: N6 ^1 K
transition: left ease .4s, transform ease 1.2s .44s;
9 ^1 E9 ?! }0 M% `$ q0 [) p8 H}
3 @2 a8 w! }2 D7 e; h+ _#vcd #cd.switch
, `* V8 p# @8 A# r+ i) h{
7 Y( Z; O! X" q$ Sleft: 120px;
1 g2 B' u3 k6 B9 X-webkit-transform: rotate(2520deg);
/ ~1 [2 b$ x$ Z-moz-transform: rotate(2520deg); $ ~: H# F1 c4 c: ?
-ms-transform: rotate(2520deg); * S# ?% P: h7 y. ]/ J! U
transform: rotate(2520deg); 2 y. i( m% X W' p0 K' N" @* o
}
3 u- g/ A8 s& A* a- N4 k# @8 s#vcd #wrappager 7 ?5 s) W0 }9 `+ ?
{
' d( _. k8 @# V; a+ t odisplay: block; 8 |2 e6 X; K( l! v V
left: 0; 2 o; c$ q6 Y! R% o' M5 u/ G6 C9 V4 N
top: 2px; * ~5 t3 Y' b4 V, c- G
} 1 I/ ^0 [& _3 k" ~! I3 R2 _1 e- a
#vcd #indexbar
; t% U+ H) ]* p% ^! ~" p1 s/ g{ ; Q& K) x5 a0 s; f- O0 |% k: ]
top: 235px; % `: n) L1 s& |4 b5 C# Q' W
left: 25px;
* ~* V/ g. c9 L% H9 O7 {3 etext-align: center;
, b8 @, {" `, q3 d1 q8 G1 p* Ioverflow: hidden;
! P3 W9 e" L& t F) N+ uopacity: 0; 3 g# a" }4 c& N# l& Q' m
visibility: hidden;
" x/ m. D% A/ K-webkit-transition: opacity linear .6s; , \& F) D) ^1 L1 M8 T2 z0 S9 `
-moz-transition: opacity linear .6s; 1 [) S- `6 j$ ?: y& g! P( b
-ms-transition: opacity linear .6s; - | m7 w1 d* X( M
transition: opacity linear .6s;
! p @" m( Y2 x9 \: R t& I6 Mposition: absolute; 3 r0 M0 A, X& \% j
}
% F7 W& [0 K( T# l L#vcd:hover #indexbar
D: V! h* j1 ~{
' f- ?6 `! s! Y) {3 W3 ]9 [opacity: 1; . @: _7 m! m% S
visibility: visible;
7 l' E% l! c5 V% O+ @! b4 @9 U}
3 \% s) P w n+ P3 K% W#vcd #indexbar a 9 y/ s+ x/ U8 \
{ - I/ J7 z2 D, E3 N% ^5 C
display: inline-block;
F6 V0 Y* L/ ?3 [$ e% g5 K/ x$ q9 ymargin: 0 4px;
9 z5 [1 q1 @; ^) W$ g$ qheight: 0;
5 p# @! o1 C* v; P- k0 j# uwidth: 0;
6 |# y* p5 o a: Tborder: 4px #9f9f9f solid; ) d. R7 L G( R) @4 g6 J! C
border-radius: 100%; 7 v. Q0 x' X9 B' y. s
text-indent: -200px; . ]9 h" b" c- j1 s8 _
overflow: hidden;
" r5 K& k0 _2 t" a. s' v0 z9 g} + r1 U4 u, { c) W" p
#vcd #indexbar a:hover, #vcd #indexbar a.active
: u- I1 S0 \5 m H{ & }4 T0 Y& O- `1 n
width: 4px; " M. u6 }2 Z2 v" h
height: 4px; 4 a3 `+ D3 ?3 p3 D( o
border-color: #05c7fe; ! t% v5 I. X( d& f: ?
border-width: 2px; 2 r9 R' t$ i9 Q# q5 s- K, `- }
} ) g. P+ w3 O( c$ e0 v
对于css大家可以照着敲一下,对于位置的布局主要就是依赖position:relative和position:absolute;然后大家会发现使用css3的过渡和变形:transition和transform 我简单提一下:
0 ^8 k( E* [1 J1 r1、transition : left 1s ease 0s ;
# V% ?& U6 p! [% i, j3 k参数1:需要过渡效果的属性,可以为单个属性:width,left等,也可以设置为all。
! d3 Y: E$ {7 ]. Q A7 i+ g* N; t参数2:过渡的持续时间
3 C- W6 f4 F# [2 J/ C! f参数3:过渡的速率动画,这个大家有兴趣可以查查,就是先慢后快,匀速之类的。 * ]8 Q8 H3 D1 ^7 s' B; p
参数4:过渡开始的延时时间
" T) L4 H2 B- N7 ] h4 P+ M& ftransition也支持如下写法:
3 z* {; r) \+ h& E, dtransition-property:border, color , text-shadow ; & g( a. h6 g( U! `
transition-duration:2s , 3s , 3s ; 1 b7 V3 }' J0 L2 |1 K
2、transform支持几种变形 1 L m* P% ?7 d" G/ m3 `
transform:scale(0.5) 缩放
+ C; T# P" A% _1 [8 j Ftransform:rotate(90deg)旋转90度 0 \2 N, w K% c6 f
transform:skew(10deg 2deg)斜切,矩形转化为平行四边形
& T2 G) S& }' dtransform:matrix() 这个矩阵变形 这个网站提供在线设计矩阵 2 L4 ?: c+ z& g+ f
transform:translate(40px 20px)平移 9 }8 m2 F) \8 r; n% H7 F
例外提供了:transform-origin:20% 20%;用于修改变形效果的起点,默认为重点
( `2 \/ z j& ~当然我们这个例子用的是旋转,也就不用修改变形效果起点了。
8 _) T' t; D! g" P2 |4 H- {; B( j$ m; M! b8 s5 f
最后是js:
) }9 ]: [. M' w9 u代码如下:" }: V( X2 x0 e; ?
/**
4 ~! D3 e2 M' N* created with jetbrains webstorm. l, Y9 a7 w! F# N
* user: zhy
6 _ Z2 r1 M' |1 w0 L' K4 S* e* date: 14-6-15 1 _; ~9 M1 s* |
* time: 下午6:26
0 M* z( l' x% o6 N! h; A* to change this template use file | settings | file templates.
! d2 T* U" A# @8 X*/
, Z0 P1 G) s0 H+ S8 n) ovar vcd = { + o, \, M: ]6 r& U5 x1 P
/**
7 N# h4 L& t' D1 p* 常量 ! o; t o3 u7 n
*/
: R6 ~% ^9 {" kid_vcd: vcd,
' f9 C/ W$ t' a, v( z# pid_indexbar: indexbar,
( Z2 N) I4 X, J8 n6 c2 i* Qid_cd: cd, ( P) X/ S+ p. a& h
class_active: active, * k) T6 R( v9 } J
class_cd_switch: switch,
* g2 v' [7 H% T; p* V8 \ `8 Ecurrentindex: 0,
& T& P' {' Y1 B4 S/ r# gisrunning: false,
, t. [; s: B( ]& c, n/ C8 stimer: null,
2 d8 ]" Q+ _- D# binit: function () ! v: z/ n- D4 X% e4 f3 `0 n
{ j6 X' O3 }; c+ Z+ |
/**
3 p4 y/ N* v9 c8 y9 @7 V/ F7 B* 初始化数据与事件 0 u6 ^# Q0 C2 O8 u$ j
*/
7 ^7 \1 ?! H& y7 ?: @vcd.vcd = $(# + vcd.id_vcd);
* x7 B, P/ Y; pvcd.cd = $(# + vcd.id_cd); : _2 S# {: N5 u- ?3 T
vcd.imgs = $(li, vcd.vcd); 1 Z2 {3 R8 i/ C/ k
vcd.indexbar = $(# + vcd.id_indexbar); # \# X' x7 x* O# B7 K9 X
vcd.vcd.mouseover(function (event)
* d' m! j- @/ M8 A7 `{
7 I W: T. E9 m( `+ |, E# A5 Vclearinterval(vcd.timer); 2 G1 B8 `$ V# j2 x7 E% D* d8 b# X& l
});
6 D, E6 }/ Y% e) x. Y% zvcd.vcd.mouseout(function () ) G5 Q: W9 ]8 Y- _$ p: S8 ?4 l
{ ' u7 _& F+ V5 ] k5 p
vcd.autoplay();
" {4 C+ {7 u3 }9 }# C, o3 M}) 9 ?3 ~, C: O8 x0 H
; , Y" o; D& I! H& t0 L
$(a, vcd.indexbar).click(vcd.dotclick);
/ ]" r9 G6 r2 X" Z7 _! t! A- u},
E# P8 g0 e% |) X/** . R, W" w6 l! {7 N* q8 {7 O
* 按钮点击切换
8 ]5 u- {; J' G9 u3 I* @param event
; e/ t8 s7 L- X1 w7 y. h _*/
* ]. z/ l8 t t9 ~# sdotclick: function (event)
) w9 G% l; ]$ }- q{
+ b; t4 T1 L% ^: r! d! c//如果当前动画还在运行,则直接返回 % B' P0 O! e7 @' Q. r. M
if (vcd.isrunning)return;
7 K7 ]7 J" j1 Y! g5 Ivcd.isrunning = true; . T7 @& [$ Q$ H, S5 G* n# `
$(a, vcd.indexbar).removeclass(vcd.class_active);
9 h) \. i4 p5 O9 p- s5 ~# `, o$(this).addclass(vcd.class_active); ' F% R6 s2 i4 u- w
vcd.currentindex = $(this).text(); 5 ~" P6 M% M" V- ~1 n- ]
vcd.cd.addclass(vcd.class_cd_switch);
# o2 K: s" \' ?5 f1 Z( l8 a+ G' Dsettimeout(vcd.resetdotclick, 1500);
! s) S+ J6 }- h! o2 Yevent.preventdefault();//阻止a的默认跳转页面
# @0 K" S: s& y9 |2 X8 X}, 8 O3 O5 A4 ]( D% P! I
/** . X, m, c& ~* {; d0 W- K+ \
* 当cd动画结束后,更新图片 6 d5 M# g+ D9 W+ W7 u
*/
8 _: }2 H7 [) gresetdotclick: function ()
: J1 y- |' |, |' [/ ]7 M5 i; ?{
- @0 k o# o/ `; r$ l1 M' f: Dvcd.cd.removeclass(vcd.class_cd_switch); ) `! E! T! X7 `" q' _
vcd.imgs.removeclass(vcd.class_active); : J3 `" p ]+ N+ U5 D, Y
vcd.imgs.eq(vcd.currentindex).addclass(vcd.class_active); & j p4 {! k2 N" O* j4 t
vcd.isrunning = false; 7 c- I: q( J; p( f6 x+ H) ?$ {
}, 1 k ?* u# g- O! M6 m; J
autoclick: function ()
: u& f7 @' l+ v4 a. w/ A# x6 [* x* ^{ , r( G: p0 R- T4 }) u L- h: ^, g
var as = $(a, vcd.indexbar);
; p9 t! V, \* g" J0 x Cvcd.currentindex++; $ t3 ~$ o2 n. Y' e
if (vcd.currentindex == as.length) * o5 ]7 E5 M' @ v, K/ Q
{
: ^3 r% ^$ L' Q D3 [) Svcd.currentindex = 0; " K2 ~+ l3 p; d5 t
} 3 o: w* [( U1 G8 O) U8 P7 I! i6 _
as.removeclass(vcd.class_active);
' Q# ^- V2 Y9 U; H/ ^# was.eq(vcd.currentindex).addclass(vcd.class_active);
* f1 E; l* }' t4 C" [( ~/ gvcd.cd.addclass(vcd.class_cd_switch); $ T! c u: P, S; {
settimeout(vcd.resetdotclick, 1500); ; D+ ~+ h* l- ~/ t
},
; R+ x7 ?2 T d/**
3 J- Q5 Y/ ~/ ]6 B; Q5 ]1 c* 自动播放 % S4 L) L8 b& t3 ?- q
*/ ( Y: b7 e2 w/ w( v) N: R5 [. c% i
autoplay: function ()
- ?( t6 F! z: \3 }: K+ b+ l{ " F' y5 T9 g+ F3 M7 \
vcd.timer = setinterval(function ()
5 F# k/ \+ ~8 M x$ r0 ~{
z) a2 x( S1 ]6 a! Gvcd.autoclick();
! f( r V5 B! j* F}, 3000); 1 O7 ~" p. Q1 T2 f+ \
}
7 d' T0 z7 J3 S. M}
" f$ \. x2 n, F4 L& U/ o1 F1 M; , V- K7 k h* ~! |5 _- C4 q8 s
单例的写法,定义了一个对象,然后用户通过vcd.init() ;vsd.autoplay()调用、 4 C5 b# x V5 s% n& o
代码如下:& w' R' z! x8 D1 |* X
<script type=text/javascript> 1 r+ a, F6 {6 M) P4 L
$(function ()
h, ^* S' \9 u{ , d% z/ G9 K* P0 V
vcd.init();
: b: B2 t# C/ Xvcd.autoplay();
8 k, @- a" D1 [ d- G0 D3 l});
2 S7 J" Y8 t3 Q4 t5 N</script>
! i' \5 ^$ z; a n- ~0 ]$ c, l9 D重置的css我就不贴了,下面我把源码提供给大家下载。 3 L" Y# {' a0 v0 i( o8 i, g
, Z, k) y% _- \- ?+ m. }
更多网页制作信息请查看: 网页制作 |