先看下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更多网页制作信息请查看: 网页制作 |