jQuery左右图文滚动

这个是图文的左右滚动,一般是一版几个图片,图片下面配有文字。

现在实现的有:文档首次载入后,会自动切换。如果点击了左右按钮或者是下面的索引小圆,就会关闭定时器。

需要解决的问题是,如果不对轮播图进行操作后3s,它又会自动开启定时器进行切换了。

jQuery实现的要添加一个jQuery库文件。可以是本地的,也可是在线的。

好了,话不多说,上代码哈。

html:

 1 <div class="container">
 2 <span id="prev" class="prev btn">&lt;</span>
 3 <span id="next" class="next btn">&gt;</span>
 4 <div class="img_container">
 5  <div class="imgbox" style="left:0">
 6   <ul>
 7    <li style="background:red;">1</li>
 8    <li style="background:blue;">2</li>
 9    <li style="background:pink;">3</li>
10    <li>4</li>
11    <li style="background:#ccc;">5</li>
12    <li style="background:010101;">6</li>
13    <li style="background:green;">7</li>
14    <li style="background:maroon;">8</li>
15    <li style="background:#6A3939;">9</li>
16    <li style="background:#0D5224;">10</li>
17    <li style="background:#0D156F;">11</li>
18    <li style="background:#861271;">12</li>
19    <li style="background:#3E0858;">13</li>
20    <li style="background:#C42C64;">14</li>
21    <li style="background:#403E05;">15</li>
22   </ul>
23  </div>
24  <div class="circle">
25   <span class="current">1</span><span>2</span><span>3</span><span>4</span>
26  </div>
27 </div>
28 </div>

css:

 1 <style>
 2 *{
 3   margin:0;
 4   padding:0;
 5 }
 6 .container{
 7   width:700px;
 8   height:300px;
 9   border:1px solid #000;
10   margin:50px auto;
11   position:relative;
12 }
13 .container span.btn{
14   display:block;
15   width:30px;
16   height:100px;
17   line-height:100px;
18   text-align:center;
19   font-size:40px;
20   background:rgba(0,0,0,.3);
21   position:absolute;
22   top:100px;
23   cursor:pointer;
24   display:none;
25 }
26 .container:hover span.btn{
27   display:block;
28 }
29 .container span.btn:hover{
30   background:rgba(0,0,0,.6);
31 }
32 .container span.btn.prev{
33   left:0;
34 }
35 .container span.btn.next{
36   right:0;
37 }
38 /**/
39 .img_container{
40   width:600px;
41   height:240px;
42   border:1px solid red;
43   margin:30px auto;
44   overflow:hidden;
45   position:relative;
46 }
47 .img_container .imgbox{
48   position:absolute;
49   left:0;
50   top:0;
51   width:2400px;
52 }
53 .img_container .imgbox li{
54   float:left;
55   list-style:none;
56   width:130px;
57   height:200px;
58   background:#f60;
59   margin:10px;
60   font-size:30px;
61   color:white;
62   line-height:200px;
63   text-align:center;
64   margin-top:20px;
65 }
66
67 /*焦点图下面的显示索引的小圆环*/
68 .img_container .circle{
69   width:64px;
70   height:12px;
71   position:absolute;
72   bottom:4px;
73   left:268px;
74 }
75 .img_container .circle span{
76   display:block;
77   float:left;
78   width:10px;
79   height:10px;
80   background:#9DA5A5;
81   font-size:12px;
82   margin-right:4px;
83   text-indent:-9999px;
84   border-radius:50%;
85   border:1px solid #000;
86   cursor:pointer;
87 }
88 .img_container .circle span.current{
89   background:#FF4500;
90 }
91 </style>

js:

  1 <script>
  2 $(function(){
  3   var page = 1;  //定义为当前第一页
  4   var i = 4;  //每版放四个图片
  5   //向后按钮
  6   $(‘span.next‘).click(function(){ //绑定click事件
  7       clearInterval(timer);
  8      var container = $(this).parents(‘div.container‘);  //根据当前点击元素获取到祖先元素(最外层的idv) container
  9      var imgBox = container.find(‘div.imgbox‘);  //获取装图片的盒子
 10      var imgContainer = container.find(‘div.img_container‘); //获取展示图片的显示屏
 11      var iWidth = imgContainer.width(); //获取显示屏的宽度
 12      var len = container.find(‘li‘).length;  //获取列表的个数
 13      var pageCount = Math.ceil(len/i);   // 分为多少版,一定要注意细节啊,这里的是Math.ceil(),向上取整(只要不是整数,就往大的方向取最小的整数)
 14      if(!imgBox.is(":animated")){    //判断装图片的盒子是否正在处于动画
 15         if(page == pageCount){  //已经到最后一个版面了,如果再向后,必须跳转到第一个版面
 16            imgBox.animate({left:‘0px‘},‘slow‘); //通过改变left值,跳转到第一个版面
 17            page = 1;
 18         }else{
 19            imgBox.animate({left:‘-=‘+iWidth},‘slow‘);
 20            page++;
 21         }
 22      }
 23      container.find(‘.circle span‘).eq((page-1)).addClass(‘current‘).siblings().removeClass(‘current‘);
 24   });
 25   //向前按钮
 26   $(‘span.prev‘).click(function(){
 27       clearInterval(timer);
 28      var container = $(this).parents(‘div.container‘);
 29      var imgBox = container.find(‘div.imgbox‘);
 30      var imgContainer = container.find(‘div.img_container‘);
 31      var iWidth = imgContainer.width();
 32      var len = container.find(‘li‘).length;
 33      var pageCount = Math.ceil(len/i);
 34      if(!imgBox.is(":animated")){
 35        if(page == 1){
 36           imgBox.animate({left:‘-=‘+iWidth*(pageCount-1)},‘slow‘);
 37           page = pageCount;
 38        }else{
 39           imgBox.animate({left:‘+=‘+iWidth},‘slow‘);
 40           page--;
 41        }
 42      }
 43      container.find(‘.circle span‘).eq((page-1)).addClass(‘current‘).siblings().removeClass(‘current‘);
 44   });
 45
 46   //下面的圆环的鼠标经过事件
 47   $(‘.circle span‘).click(function(){
 48      var count = $(‘.circle span‘).index(this);
 49      var container = $(this).parents(‘div.container‘);
 50      var imgBox = container.find(‘div.imgbox‘);
 51      var imgContainer = container.find(‘div.img_container‘);
 52      var iWidth = imgContainer.width();
 53      var len = container.find(‘li‘).length;
 54      var pageCount = Math.ceil(len/i);
 55      if(!imgBox.is(‘:animated‘)){
 56         imgBox.animate({left:-iWidth*count},500);
 57      }
 58      $(this).addClass(‘current‘).siblings().removeClass(‘current‘);
 59   });
 60 });
 61
 62 window.onload = startMove;
 63 var timer = null;
 64 function startMove(){
 65      var container = $(‘div.container‘);
 66      var imgBox = container.find(‘div.imgbox‘);
 67      var imgContainer = container.find(‘div.img_container‘);
 68      var iWidth = imgContainer.width();
 69      var pPage = 1;
 70      /*var offLeft = imgContainer.offset().left;
 71      var offLeftImg = Math.round(1800-offLeft);*/
 72
 73      timer = setInterval(function(){
 74
 75           /*if(imgBox.css(‘left‘) == -1800+‘px‘){
 76                 imgBox.animate({left:‘0px‘});
 77               }else{imgBox.animate({left:‘-=‘+iWidth});}*/  //这中方法不错的哦
 78     /*if(imgBox.offset().left <= -1200){
 79
 80                 imgBox.animate({left:‘0px‘});
 81
 82     }
 83               else{imgBox.animate({left:‘-=‘+iWidth});} */  //这种方法不可取
 84               if(imgBox.css(‘left‘) == -1800+‘px‘){
 85                 imgBox.animate({left:‘0px‘});
 86                 pPage = 1;
 87               }else{
 88                 imgBox.animate({left:‘-=‘+iWidth});
 89                 if(pPage == 4){
 90                   pPage = 1;
 91                 }else{
 92                   pPage++;
 93                 }
 94               }
 95     /*var imgIndex = Math.abs(parseInt(imgBox.css(‘left‘)))/iWidth;
 96     $(‘.circle span‘).eq((imgIndex+1)).addClass(‘current‘).siblings().removeClass(‘current‘);*/
 97     $(‘.circle span‘).eq(pPage-1).addClass(‘current‘).siblings().removeClass(‘current‘);
 98
 99 },3600);
100 }
101 </script>

左右两个按钮display为none,当鼠标移入祖先元素container时,就会显示出来,当鼠标移入按钮时,透明度增加(即表示越亮,越接近图片或颜色本来的亮度。)

图片下面的索引小圆也有点击效果。点击哪个,哪个就是选中状态,同时上面的板块跟着切换到那一版面。

显示效果为:

移入container:

移入按钮:

时间: 2024-11-07 00:37:47

jQuery左右图文滚动的相关文章

jQuery 随滚动条滚动效果 (适用于内容页长文章)

直接入题! 当内容页比较长的时候,网站右侧一直是空白,不如放点有用的东西给用户看,最好不要放广告,因为那样很邪恶,你懂的. 好吧,昨天写了这个东西,jQuery滚动随动区块,代码如下: //侧栏随动 var rollStart = $('.feed-mail'), //滚动到此区块的时候开始随动 rollOut = $('.cookie-list'); //隐藏rollStart之后的区块 rollStart.before('<div class="da_rollbox">

jQuery 随滚动条滚动效果 (固定版)

//侧栏随动 var rollStart = $('.feed-mail'), //滚动到此区块的时候开始随动 rollSet = $('.search,.weibo,.group,.feed-mail,.tags'); //添加rollStart之前的随动区块 rollStart.before('<div class="da_rollbox" style="position:fixed;background-color:#fff;width:inherit;"

jquery文字垂直滚动代码实例

jquery文字垂直滚动代码实例: 文字垂直滚动效果在大量网站都有应用,尤其在新闻公告或者新闻列表之类形式的功能结构中出现. 代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.51texiao.cn/" /> <title>蚂

jQuery页面的滚动位置scrollTop、scrollLeft

Web页面常常比显示该页面的浏览器窗口还要大,因为Web文档具有很多内容,往往会导致页面比浏览器还要高,有时候甚至还要宽,这迫使访问者通过滚动来查看整个页面(如图10-8所示).当访问者滚动页面的时候,一部分文档会从视线中消失.例如,Web页面不能完全放入浏览器窗口中,文档会向左或向上滚动,因此,页面的顶部和左边都会消失在视野之内.这意味着浏览器窗口的左上角和文档的左上角并不相同.如果试图放置一个新元素,例如,屏幕顶部的一个动态Banner:而如果只是试图将元素的left和top位置设置为0,将

基于jquery的鼠标滚动放大缩小图片

一直以来都想写一个图片放大和缩小的小玩意,本来以为会很复杂,这几天自己思考了一下,原来是so easy啊.目前实现的放大缩小,主要时依据鼠标的滚轮触发事件来实现的,废话少说直接上源码. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns

js原生 + jQuery实现页面滚动字幕

js原生/jQuery实现页面滚动字幕效果 17:45:49 在新闻列表或者文章列表信息等页面中很容易要求实现字幕滚动的效果,以下为简单的实现页面中滚动字幕的效果 1.jQuery实现页面滚动字幕效果 代码如下: <div class="box"> <ul class="list"> <li>这是滚动加载的第1条数据</li> <li>你猜猜这是第几条滚动加载的文字</li> <li>

jquery图片无缝滚动特效

jquery图片无缝滚动插件制作左右无缝滚动图片和上下无缝滚动图片,一款简单的jQuery无缝滚动代码.JS代码 <script type="text/javascript"> //图片滚动 调用方法 imgscroll({speed: 30,amount: 1,dir: "up"}); $.fn.imgscroll = function(o){ var defaults = { speed: 40, amount: 0, width: 1, dir:

基于jQuery左侧小图滚动右侧大图显示代码

今天给大家分享一款 jQuery左侧小图滚动右侧大图显示代码是一款基于jQuery实现的左侧滚动图片点击大图查看效果代码.该实例适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="caseImg03 w1002"> <div class="slideCase03"> <div class=&q

JQuery scrollTop()方法滚动页面

$("html").scrollTop(100);//火狐IE下可以(火狐IE不用在服务器下测试) $("body").scrollTop(100);//谷歌内核的浏览器360和谷歌(服务器下测试) 这样写才行,谷歌内核的浏览器因为js中好多方法为了确保安全必须要在服务器下测试才行,或者可以在控制台下测试命令! $("html,body").scrollTop(100);//所以这样写才兼容 JQuery scrollTop()方法滚动页面