首页 > 代码库 > 图片滚动 初学JQuery

图片滚动 初学JQuery

图片滑动效果一般用于首页的展示,这个按照别人的思路,自己扩充修改了下,纯属自己笔记。

JS代码

 1     <script src="http://www.mamicode.com/jquery/jquery-2.1.1.js"></script> 2     <script> 3         var imgTotal = 8;    //总的图片数量 4         var imgi = 1;        //默认第一张图片 5         var autoRun;        //自动滚动 6         function run(imgI) {      //传递图片编号 7             imgi = imgI;          //赋值给全局变量  imgi 8             switch (imgi) {       // 通过编号判断为哪幅图片 9                 case 1:   //设定每个图片的标签10                     $("#text1 p").html("<a href=http://www.mamicode.com/‘images/pic1.jpg‘ target=‘_blank‘>菊花〔拉丁学名:Dendranthema morifolium(Ramat. )Tzvel.〕,常用chrysanthemum。菊花是菊科,菊属多年生草本... "); break;11                 case 2:12                     $("#text1 p").html("<a href=http://www.mamicode.com/‘images/pic2.jpg‘ target=‘_blank‘>沙漠"); break;13                 default: $("#text1 p").text("this is text"); break;14             }15            16             $("#divlinks").find("a").removeClass("aaa");     //取消A标签中的aaa类17             $("#divlinks").find("a[title=‘" + imgi + "‘]").addClass("aaa");    //根据a标签的title 属性查找当前图片,设置aaa类18             19             if ($("#divimg").is(":animated")) { $("#divimg").stop(); }       //在执行现在动作之前,先停止之前的动作20             $("#divimg").animate({ left: -(imgi - 1) * 1000 + "px" }, "1000");    //设置动画,向左移动1000+的宽度,一张图片宽度为1000PX,1秒钟移动完成21 22         }23         function autorun() {      24             run(imgi);25             if (imgi == imgTotal) {       //最后一张图片  则将图片编号重置为126                 imgi = 127             } else {28                 imgi++;                  //图片编号累加29             }30 31         }32         function picrun() {   //循环执行33             run(1);             //保持第一次运行是执行第一张图片34             autoRun = setInterval(autorun, "3000");      //无限循环 ,3秒间隔35         }36         $(document).ready(function () {37             picrun();                                   //文档 加载完执行38             $(".main").hover(function(){                  //鼠标在指定图片时, 停止滚动39                 clearInterval(autoRun);40             }, function () {41                 autoRun = setInterval(autorun, "3000");   // 离开图片,继续上一次滚动42             })43         })44 45 46 47     </script>
View Code

CSS代码

 1     <style type="text/css"> 2         body { 3             text-align: center; 4         } 5  6         .main { 7             margin: auto; 8             width: 1000px;       9             height: 400px;10             position: relative;11             border: 1px solid #000;12              overflow:hidden;      //隐藏超出范围的图片13         }14 15         .pic {16             width: 10000px;            //设置极大宽度,不然自自图片无法正确FLOAT:LEFT17             height: 400px;18             background-color: #000000;19             position: absolute;20             top: 0px;21         }22 23         .aaa {24             background-color:#392940;25         }26 27         .img {28             float: left;29             width: 1000px;30             height: 400px;31         }32 33         .text {34             margin-left:20px;35             color: #fff;36             width: 500px;37             height: 50px;38             position: absolute;39             left: 0px;40             bottom: 0px;41             text-align:left;42         }43         .text p a{44             color:#fff;45         }46         .menu {47             width: 1000px;48             height: 50px;49             position: absolute;50             left: 0px;51             bottom: 0px;52             background-color: #000000;53             opacity: 0.5;54           55         }56 57         .divlink {58             position: absolute;59             right: 0px;60             bottom: 0px;61             width: 430px;62             height: 50px;63         }64 65             .divlink a {66                 font-weight: bold;67                 text-decoration: none;68                 text-align: center;69                 line-height: 30px;70                 display: block;71                 border: 1px solid #fff;72                 width: 30px;73                 height: 30px;74                 float: left;75                 margin: 10px;76                 color: #fff;77             }78             79                 .divlink a:hover {80                     background-color: #392940;81                     opacity: 0.5;82                 }83     </style>
CSS

HTML代码

 1 <body> 2     <div class="main"> 3         <div class="pic" id="divimg"> 4             <a href="images/pic1.jpg" target="_blank"> 5                 <img src="images/pic1.jpg" alt="" class="img" /></a> 6             <a href="images/pic2.jpg" target="_blank"> 7                 <img src="images/pic2.jpg" alt="" class="img" /></a> 8             <a href="images/pic3.jpg" target="_blank"> 9                 <img src="images/pic3.jpg" alt="" class="img" /></a>10             <a href="images/pic4.jpg" target="_blank">11                 <img src="images/pic4.jpg" alt="" class="img" /></a>12             <a href="images/pic5.jpg" target="_blank">13                 <img src="images/pic5.jpg" alt="" class="img" /></a>14             <a href="images/pic6.jpg" target="_blank">15                 <img src="images/pic6.jpg" alt="" class="img" /></a>16             <a href="images/pic7.jpg" target="_blank">17                 <img src="images/pic7.jpg" alt="" class="img" /></a>18             <a href="images/pic8.jpg" target="_blank">19                 <img src="images/pic8.jpg" alt="" class="img" /></a>20         </div>21         <div class="menu">22             <div class="text" id="text1">23                 <p>this is text</p>24             </div>25             <div class="divlink" id="divlinks">26                 <a href="#" title="1" onclick="return run(1)" >1</a>27                 <a href="#" title="2" onclick="return run(2)">2</a>28                 <a href="#" title="3" onclick="return run(3)">3</a>29                 <a href="#" title="4" onclick="return run(4)">4</a>30                 <a href="#" title="5" onclick="return run(5)">5</a>31                 <a href="#" title="6" onclick="return run(6)">6</a>32                 <a href="#" title="7" onclick="return run(7)">7</a>33                 <a href="#" title="8" onclick="return run(8)">8</a>34             </div>35         </div>36     </div>37 </body>
HTML

 

这个图片滚动的核心还是利用setInterval()方法,支持无限循环滚动。每次循环图片编号+1,到最一张图片重置编号。

最终效果还有由移动图片的距离产生:图片设置float:left,父窗体设置宽度为10000px,使图片横铺,每次方法执行,向左移动1000px,刚好为图片宽度,产生滚动效果

点击图片编号,直接跳转图片

具体见源码