气奇美食网
您的当前位置:首页使用jQuery制作基础的Web图片轮播效果_jquery

使用jQuery制作基础的Web图片轮播效果_jquery

来源:气奇美食网
 首先看一下效果:

就这么个意思,没截动图哈~

轮播效果分析:
轮播效果大致可以分为3个部分:轮播图片(图片或者是包含容器),控制轮播图显示的按钮(向左、向右按钮,索引按钮(例如上面效果图的顶部的数字按钮)),每隔一段时间轮流显示轮播图片。
轮播图的显示:要显示的轮播图显示,不需要显示的轮播图隐藏;通常将这些轮播图片以定位的方式重叠在一起,每次显示一张轮播图片。
控制按钮:鼠标点击或者移到索引按钮上面时,显示对应索引位置的轮播图;向上、向下按钮负责控制显示上一张、下一张轮播图片。
其它:一般索引按钮有激活状态和未激活状态共2种状态;鼠标移到轮播图片上面时应该停止自动轮播,鼠标离开时开始自动轮播。

轮播效果实现笔记:
jquery提供了丰富的选择器以及用来挑选元素的方法,这极大的简化了我们的开发,例如$(".slider-item").filter(".slider-item-selected")选择了当前处于激活状态的索引按钮。
两张轮播图的切换显示效果是通过jquery的fadeOut()和fadeIn()方法来实现的,具体的使用参照jquery的api;
CSS透明背景的实现: background: rgba(0, 0, 0, 0.2);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#33000000,endColorstr=#33000000); (可以参看下面的参看资料),兼容大部分主流浏览器包括IE;为什么不使用opacity呢?因为opacity会使文字也透明(子元素也会透明)。
HTML骨架很重要,你写的html的结果应该是良好的。

代码部分:

HTML:


 
 
 
  • 1
  • 2
  • 3
  • 4
  • < >

    CSS:

    * {
     padding: 0px;
     margin: 0px;
    }
    a {
     text-decoration: none;
    }
    ul {
     list-style: outside none none;
    }
    .slider, .slider-panel img, .slider-extra {
     width: 650px;
     height: 413px;
    }
    .slider {
     text-align: center;
     margin: 30px auto;
     position: relative;
    }
    .slider-panel, .slider-nav, .slider-pre, .slider-next {
     position: absolute;
     z-index: 8;
    }
    .slider-panel {
     position: absolute;
    }
    .slider-panel img {
     border: none;
    }
    .slider-extra {
     position: relative;
    }
    .slider-nav {
     margin-left: -51px;
     position: absolute;
     left: 50%;
     bottom: 4px;
    }
    .slider-nav li {
     background: #3e3e3e;
     border-radius: 50%;
     color: #fff;
     cursor: pointer;
     margin: 0 2px;
     overflow: hidden;
     text-align: center;
     display: inline-block;
     height: 18px;
     line-height: 18px;
     width: 18px;
    }
    .slider-nav .slider-item-selected {
     background: blue;
    }
    .slider-page a{
     background: rgba(0, 0, 0, 0.2);
     filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#33000000,endColorstr=#33000000);
     color: #fff;
     text-align: center;
     display: block;
     font-family: "simsun";
     font-size: 22px;
     width: 28px;
     height: 62px;
     line-height: 62px;
     margin-top: -31px;
     position: absolute;
     top: 50%;
    }
    .slider-page a:HOVER {
     background: rgba(0, 0, 0, 0.4);
     filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#66000000,endColorstr=#66000000);
    }
    .slider-next {
     left: 100%;
     margin-left: -28px;
    }
    

    JavaScript:

    
    
    

    首先是初始化部分:将除了第一张轮播图片意外的图片都隐藏,并且隐藏向前、向后按钮,使第一个索引按钮处于激活状态。
    事件部分:通过jquery的hover()绑定鼠标上悬以及离开时的事件处理, jquery的bind()方法绑定鼠标点击事件处理向前、向后翻动、
    轮播控制:pre(), next(), play(), start()开始自动轮播,stop()停止自动轮播。
    上面的js写的比较散,结构也不太好,读起来也比较费力,也不易使用,耦合度较高。下篇将给出一个纯粹的jquery轮播插件, 该插件可以定制各种效果,方便的配置以及可扩展。

    下面是整体的代码:
    index.html

    
    
    
    
    jquery轮播效果图 - by RiccioZhang
    
    
    

    至此一个简单的jquery轮播效果就完成了,当然还有很多需要改进的地方。

    使用插件实现
    上面的效果看起来还令人满意,唯一不足的就是:每次需要轮播效果时,要将代码复制粘贴过去,如果有些部分需要修改(例如:轮播时的动画效果,前一篇使用的是jquery的淡入淡出效果,如果改成滑动效果,不可避免的要修改js代码),那么就需要对js代码进行修改,对我所写的jquery轮播效果的js代码不熟悉的程序员来说,修改这些js确实很困难。轮播插件所要实现的目标之一就是插件可以灵活配置(不光只是本篇文章的插件),程序员只需要写少量的代码就可以实现丰富的功能,这当然是一件很好的事情。本篇文章的轮播插件的html和css部分需要程序员自己编写,而实现效果的js只需要少量的编写。
    这里我们使用到的zslider插件在GitHub上开源:
    github:https://github.com/ricciozhang/zslider_v1
    嗯,我们来看代码:

    
     
    
    
    
    
            
                    
                
                
                
        
    显示全文