基于jquery的简单图片轮播----banner

主要用到的几个JQUERY函数:

li:nth-child(2)  第二张图的意思;

attr() 方法设置或返回被选元素的属性值。

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

先看代码

复制代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>带缩略图按钮控制图片左右滑动切换代码_js代码网</title>
<meta name="keywords" content="带缩略图按钮控制图片" />
<meta name="description" content="jQuery带缩略图按钮控制图片左右滑动切换代码。" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>

<div class="play" id="play">
    <a href="javascript:" id="next">>><div class="nextImg"><img width="80" height="54" src="" /></div></a>
    <a href="javascript:" id="prev"><<<div class="prevImg"><img width="80" height="54" src="" /></div></a>
    <ol></ol>
    <ul>
        <li><a href="http://www.jsdaima.com/"><img src="images/1.jpg" alt="17素材1" /></a></li>
        <li><a href="http://www.jsdaima.com/"><img src="images/2.jpg" alt="17素材2" /></a></li>
        <li><a href="http://www.jsdaima.com/"><img src="images/3.jpg" alt="17素材3" /></a></li>
    </ul>
</div>

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function(){
    var oDiv = $("#play");  //外部盒子
    var count = $("#play ul li").length;  //内部图片数量
    var countwidth = $("#play ul li").width();  //图片边框宽度
    var oUl = $("#play ul").css("width",count*countwidth);  //ul li总宽度
    var now = 0;
    var next = $("#next");
    var prev = $("#prev");
    //点击按钮数量
    for(var i = 0; i < count; i++){
        $("#play ol").append("<li>" + Number(i+1) + "</li>");
        $("#play ol li:first").addClass("active");
    }
    //左右点击图片获取
    var nI = $("#play ul li:nth-child(2)").find("img").attr("src");//nth-childer  函数
    $(".nextImg img").attr("src",nI);
    var pI = $("#play ul li:last-child").find("img").attr("src");
    $(".prevImg img").attr("src",pI);
    //按钮点击事件
    var aBtn = $("#play ol li");
    aBtn.each(function(index){
        $(this).click(function(){
            clearInterval(timer);
            tab(index);
            nextImg();
            prevImg();
            timer=setInterval(autoRun,2000);
        });
    });
    //图片循环事件
    function tab(index){
        now = index;
        aBtn.removeClass("active");
        aBtn.eq(index).addClass("active");
        oUl.stop(true,false).animate({"left":-countwidth * now},400);
    }
    //下一张按钮图片切换
    function nextImg(){
        var d = $("#play ul li").find("img").eq(now+1).attr("src");
        var nI = $("#play ul li:nth-child(1)").find("img").attr("src");
        $(".nextImg").find("img").attr("src",d);
        if(now==count-1){
            $(".nextImg").find("img").attr("src",nI);
        }
    }
    //上一张图片按钮切换
    function prevImg(){
        var f = $("#play ul li").find("img").eq(now-1).attr("src");
        $(".prevImg").find("img").attr("src",f);
    }
    
    //下一张点击事件
    next.click(function(){
        clearInterval(timer);
        now++;
        if(now==count){
            now=0;
        }
        tab(now);
        nextImg();
        prevImg();
        timer=setInterval(autoRun, 2000);
    });
    //上一张点击事件
    prev.click(function(){
        clearInterval(timer);
        now--;
        if(now==-1){
            now=count-1;
        }
        tab(now);
        nextImg();
        prevImg();
        timer=setInterval(autoRun, 2000);
    });
    //自动轮播定义
    function autoRun(){
        now++;
        if(now==count){
            now=0;
        }
        tab(now);
        nextImg();
        prevImg();
    };
    var timer=setInterval(autoRun, 2000);
});
</script>

</body>
</html>
复制代码

 

首先是一个大盒子,里面三张图片,然后显示的只是其他三分之一中间的位置,其他部分是被隐藏的,通过animate方法,从隐藏的地方把其他的拉出来

 

这段代码的核心就下面这句话了:

oUl.stop(true).animate({"left":-countwidth * now},400)

注意那个*now  时间是变的

 

posted on   liuestc  阅读(1366)  评论(0编辑  收藏  举报

编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示