综述
我们肯定用过 QQ 空间吧,看到 QQ 空间里面的照片,点一下就会出现一个悬浮框,显示放大后的图片,而且可以点击左右箭头来查看上一张和下一张照片,怎样?这种效果,想不想实现一下。 在这里,我们就引用一个 jQuery 插件来帮助我们完成这件事情,让我们拭目以待吧
在线演示
我们首先来在线演示一下效果,然后我们说一下是怎样的实现,点开链接进行预览吧 在线预览
插件文件
其中包含了两个 JS 文件,一个是 jQuery 库,另一个就是 lightbox 插件文件。另外还有一个 css 文件,主要作用是给图片浏览器规定样式
HTML
我们写一个 DEMO,包含了六张图片,用一个 ul 列表呈现出来
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
<!DOCTYPE> <html > <head > <meta charset ="utf-8" /> <title > notesforlightbox实例</title > <script src ="js/jquery-1.4.2.min.js" > </script > <script src ="js/jquery.notesforlightbox.js" > </script > <link rel ="stylesheet" type ="text/css" href ="css/jquery.notesforlightbox.css" /> <style type ="text/css" > body {font-size :13px } .divFrame {width :380px ;border :solid 1px #666 } .divFrame .divTitle {padding :5px ;background-color :#eee ;font-weight :bold} .divFrame .divContent {padding :8px ;line-height :1.6em } .divFrame .divContent .divPics {background-color : #777 ;padding : 10px ;width : 344px } .divFrame .divContent .divPics ul {list-style : none;padding :0px ;margin :0px } .divFrame .divContent .divPics ul li {display : inline;} .divFrame .divContent .divPics ul img {border : 5px solid #444 ;border-width : 5px ;width :100px ;height :100px } .divFrame .divContent .divPics ul a :hover img {border :5px solid #fff ;border-width : 5px ;color : #fff ;} .divFrame .divContent .divPics ul a :hover {color : #fff ;} </style > <script type ="text/javascript" > $(function ( ) { $('.divPics a' ).lightBox({ overlayBgColor: "#666" , overlayOpacity: 0.5 , containerResizeSpeed: 600 }) }) </script > </head > <body > <div class ="divFrame" > <div class ="divTitle" > 我的相册 </div > <div class ="divContent" > <div class ="divPics" > <ul > <li > <a href ="images/img01.jpg" title ="第1篇风景图片" > <img src ="images/img01.jpg" alt ="" /> </a > </li > <li > <a href ="images/img02.jpg" title ="第2篇风景图片" > <img src ="images/img02.jpg" alt ="" /> </a > </li > <li > <a href ="images/img03.jpg" title ="第3篇风景图片" > <img src ="images/img03.jpg" alt ="" /> </a > </li > <li > <a href ="images/img04.jpg" title ="第4篇风景图片" > <img src ="images/img04.jpg" alt ="" /> </a > </li > <li > <a href ="images/img05.jpg" title ="第5篇风景图片" > <img src ="images/img05.jpg" alt ="" /> </a > </li > <li > <a href ="images/img06.jpg" title ="第6篇风景图片" > <img src ="images/img06.jpg" alt ="" /> </a > </li > </ul > </div > </div > </div > </body > </html >
其中 images 文件夹中存在了六张图片,其中每一个中的超链接的 href 链接是一张图片,超链接中还包含了 img 标签。这样可以保证点击图片的时候可以呼出一张大图。
功能简析
1 2 3 4 5 6 7
$(function ( ) { $('.divPics a' ).lightBox({ overlayBgColor: "#666" , overlayOpacity: 0.5 , containerResizeSpeed: 600 }) })
我们取到了所有的超链接元素,然后调用了 lightBox 方法,参数是一系列集合,在这里定义了
1 2 3
overlayBgColor: "#666" , overlayOpacity: 0.5 , containerResizeSpeed: 600
在这里给出所有的参数说明
名称
默认值
说明
overlayBgColor
000
背景色
overlayOpacity
0.8
背景色透明度
fixedNavigation
false
是否始终显示上一张、下一张按钮
imageLoading
images/lightbox-ico-loading.gif
加载图片时显示的图片
imageBtnPrev
images/lightbox-btn-prev.gif
上一张按钮的图片
imageBtnNext
images/lightbox-btn-next.gif
下一张按钮的图片
imageBtnClose
images/lightbox-btn-close.gif
关闭按钮的图片
imageBlank
images/lightbox-blank.gif
上一张、下一张按钮周围空白部分的图片(默认透明)
containerBorderSize
10
展示图片的边框宽度
containerResizeSpeed
400
展示过程切换的速度
txtImage
Image
页码辅助文字
txtOf
of
页码辅助文字
keyToClose
c
关闭展示的快捷键
keyToPrev
p
上一张的快捷键
keyToNext
n
下一张的快捷键
值得注意的地方是
imageLoading
‘images/lightbox-ico-loading.gif’
加载图片时显示的图片
imageBtnPrev
‘images/lightbox-btn-prev.gif’
上一张按钮的图片
imageBtnNext
‘images/lightbox-btn-next.gif’
下一张按钮的图片
imageBtnClose
‘images/lightbox-btn-close.gif’
关闭按钮的图片
这几张张图片,我们如果不定义,则会使用 JS 中默认的定义路径 在 jquery.notesforlightbox.js 中,如下程序便实现了上一张图片和下一张图片等按钮的定义
1 2 3 4 5 6 7 8 9
imageLoading: 'images/loading.gif' ,imageBtnPrev: 'images/prev.png' ,imageBtnNext: 'images/next.png' ,imageBtnClose: 'images/close.png' ,imageBlank: 'images/lightbox-blank.gif' ,imageBtnBottomPrev: 'images/btm_prev.gif' ,imageBtnBottomNext: 'images/btm_next.gif' ,imageBtnPlay: 'images/start.png' ,imageBtnStop: 'images/pause.png' ,
所以,如果发现图片不正常显示可以检查一下这里的路径设置问题
代码下载
源码下载 代码已部署在 GitHub,可以下载查看
总结
通过这个插件我们可以方便地实现图片的加载预览,效果也比较酷炫,希望对大家有帮助!