上周连续发了二个我自己写的幻灯片组件,这次发个queness写的简单的幻灯片,通俗易懂。

制作教程:
创建如下html结构:
- <ul class="slideshow">
- <li class="show"><a href="#"><img src="images/s1.gif" width="450" height="200" title="Slide 1" alt="Short Description"/></a></li>
- <li><a href="#"><img src="images/s2.gif" width="450" height="200" title="Slide 2" alt="Short Description"/></a></li>
- <li><a href="#"><img src="images/s3.gif" width="450" height="200" title="Slide 3" alt="Short Description"/></a></li>
- </ul>
css样式如下:
- body {
- font-family:arial;
- font-size:12px;
- }
- ul.slideshow {
- list-style:none;
- width:450px;
- height:200px;
- overflow:hidden;
- position:relative;
- margin:0;
- padding:0;
- }
- ul.slideshow li {
- position:absolute;
- left:0;
- right:0;
- }
- ul img {
- border:none;
- }
- #slideshow-caption {
- width:450px;
- height:70px;
- position:absolute;
- bottom:0;
- left:0;
- color:#fff;
- background:#000;
- z-index:500;
- }
- #slideshow-caption .slideshow-caption-container {
- padding:5px 10px;
- }
- #slideshow-caption h3 {
- margin:0;
- padding:0;
- font-size:14px;
- }
- #slideshow-caption p {
- margin:5px 0 0 0;
- padding:0;
- }
javascript部分如下:
- $(document).ready(function() {
- //调用幻灯片函数,2000为图片切换时间
- slideShow(2000);
- });
- function slideShow(speed) {
- $('ul.slideshow').append('');
- //设置图片层透明度
- $('ul.slideshow li').css({opacity: 0.0});
- //显示第一张图片
- $('ul.slideshow li:first').css({opacity: 1.0});
- //获取第一张图片的标题和描述
- $('#slideshow-caption h3').html($('ul.slideshow a:first').find('img').attr('title'));
- $('#slideshow-caption p').html($('ul.slideshow a:first').find('img').attr('alt'));
- $('#slideshow-caption').css({opacity: 0.7, bottom:0});
- //定时执行gallery函数
- var timer = setInterval('gallery()',speed);
- //当鼠标经过时,移除定时器
- $('ul.slideshow').hover(
- function () {
- clearInterval(timer);
- },
- function () {
- timer = setInterval('gallery()',speed);
- }
- );
- }
- function gallery() {
- //如果没有找到.show对象,显示第一张图片
- var current = ($('ul.slideshow li.show')? $('ul.slideshow li.show') : $('#ul.slideshow li:first'));
- //获取下一张图片
- var next = ((current.next().length) ? ((current.next().attr('id') == 'slideshow-caption')? $('ul.slideshow li:first') :current.next()) : $('ul.slideshow li:first'));
- //得到下一张图片层的标题和描述
- var title = next.find('img').attr('title');
- var desc = next.find('img').attr('alt');
- //设置透明度和z-index
- next.css({opacity: 0.0}).addClass('show').animate({opacity: 1.0}, 1000);
- $('#slideshow-caption').animate({bottom:-70}, 300, function () {
- //显示内容
- $('#slideshow-caption h3').html(title);
- $('#slideshow-caption p').html(desc);
- $('#slideshow-caption').animate({bottom:0}, 500);
- });
- //隐藏当前图片
- current.animate({opacity: 0.0}, 1000).removeClass('show');
- }
我已将其注释汉化了,不明白的可以给我留言。
原文:http://www.queness.com/post/1450/jquery-photo-slide-show-with-slick-caption-tutorial-revisited

09年即将离去,祝新年快乐,呵呵
谢谢,也祝你新年快乐