jQuery图片轮播的具体实现


Posted in Javascript onSeptember 11, 2013

效果如下:

jQuery图片轮播的具体实现

先看一看html代码,以及对应的css代码:

<div id="scrollPics">
    <ul class="slider" >
        <li><img src="images/ads/1.gif"/></li>
        <li><img src="images/ads/2.gif"/></li>
        <li><img src="images/ads/3.gif"/></li>
        <li><img src="images/ads/4.gif"/></li>
        <li><img src="images/ads/5.gif"/></li>
    </ul>
    <ul class="num" >
        <li class="on">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
</div>

#scrollPics{
    height: 150px;
    width: 100%;
    margin-bottom: 10px;
    overflow: hidden;
    position:relative;
}
.num{
    position:absolute;
    right:5px; 
    bottom:5px;
}
#scrollPics .num li{
    float: left;
    color: #FF7300;
    text-align: center;
    line-height: 16px;
    width: 16px;
    height: 16px;
    cursor: pointer;
    overflow: hidden;
    margin: 3px 1px;
    border: 1px solid #FF7300;
    background-color: #fff;
}
#scrollPics .num li.on{
    color: #fff;
    line-height: 21px;
    width: 21px;
    height: 21px;
    font-size: 16px;
    margin: 0 1px;
    border: 0;
    background-color: #FF7300;
    font-weight: bold;
}

用绝对定位设置列表 num 的位置,对 li 设置相关样式,on 表示显示图片对应的数字列表中 li 的样式类别。

接下来是 js 代码:

//滚动广告
    var len = $(".num > li").length;
    var index = 0;  //图片序号
    var adTimer;
    $(".num li").mouseover(function() {
        index = $(".num li").index(this);  //获取鼠标悬浮 li 的index
        showImg(index);
    }).eq(0).mouseover();
    //滑入停止动画,滑出开始动画.
    $('#scrollPics').hover(function() {
        clearInterval(adTimer);
    }, function() {
        adTimer = setInterval(function() {
            showImg(index)
            index++;
            if (index == len) {       //最后一张图片之后,转到第一张
                index = 0;
            }
        }, 3000);
    }).trigger("mouseleave");
    function showImg(index) {
        var adHeight = $("#scrollPics>ul>li:first").height();
        $(".slider").stop(true, false).animate({
            "marginTop": -adHeight * index + "px"    //改变 marginTop 属性的值达到轮播的效果
        }, 1000);
        $(".num li").removeClass("on")
            .eq(index).addClass("on");
    }
Javascript 相关文章推荐
提高网站信任度的技巧
Oct 17 Javascript
JS函数实现动态添加CSS样式表文件
Dec 15 Javascript
JavaScript中的类(Class)详细介绍
Dec 30 Javascript
javascript使用avalon绑定实现checkbox全选
May 06 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
Jan 30 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
Jun 22 jQuery
Axios学习笔记之使用方法教程
Jul 21 Javascript
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
JS数组方法shift()、unshift()用法实例分析
Jan 18 Javascript
基于javascript实现碰撞检测
Mar 12 Javascript
vue中keep-alive、activated的探讨和使用详解
Jul 26 Javascript
Javascript倒计时页面跳转实例小结
Sep 11 #Javascript
用javascript判断IE版本号简单实用且向后兼容
Sep 11 #Javascript
js open() 与showModalDialog()方法使用介绍
Sep 10 #Javascript
jquery获取子节点和父节点的示例代码
Sep 10 #Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
Sep 10 #Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
Sep 10 #Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 #Javascript
You might like
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
新发现一个骗链接的方法(js读取cookies)
2012/01/11 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
python中列表的含义及用法
2020/05/26 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
综合素质的自我鉴定
2013/10/07 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers
SQL SERVER触发器详解
2022/02/24 SQL Server
MySQL深分页问题解决思路
2022/12/24 MySQL