实现轮播的一般思路为在一个大盒子中对无限个元素进行切换操作,大盒子固定大小,超出盒子范围进行隐藏,而里面无限个元素可以任何堆叠,按照一定的步骤进行位置变换,已达到在可视区域呈现我们想要的效果。

  看一个实例:

 HTML代码:

 1 <div class="trans_box">
 2 <div id="transImageBox" class="trans_image_box">
 3     <div class="trans_image" style="width:300px;height:200px;background:blue;">111</div>
 4     <div class="trans_image" style="width:300px;height:200px;background:red;">222</div>
 5     <div class="trans_image" style="width:300px;height:200px;background:orange;">333</div>
 6 </div>
 7 <div id="transImageTrigger" class="trans_image_trigger">
 8     <a href="#1">图片1</a> <a href="#2">图片2</a> <a href="#3">图片3</a>
 9 </div>
10 </div>

CSS代码:

 1 .trans_box {
 2     width:300px;
 3     overflow:hidden;
 4 }
 5 .trans_image_box {
 6     width:20000px;
 7     height:200px;
 8     -webkit-transition: all 1s ease-in-out;
 9        -moz-transition: all 1s ease-in-out;
10          -o-transition: all 1s ease-in-out;
11             transition: all 1s ease-in-out;
12 }
13 .trans_image_box .trans_image {
14     float:left;
15     width:200px;
16 }
17 .trans_image_trigger {
18     padding-top: 10px;
19     text-align: center;
20 }

JS代码:

 1 var $ = function(id) {
 2     return document.getElementById(id);
 3 };
 4 var $box = $("transImageBox"),
 5      $oTrigger = $("transImageTrigger").getElementsByTagName("a"),
 6      $len = $oTrigger.length;
 7 for(var i = 0; i < $len; i++) {
 8       $oTrigger[i].onclick = function(){
 9             var index = Number(this.href.replace(/.*#/g,'')) || 1;
10             $box.style.marginLeft = (1 - index) * 300 + "px";
11             return false;
12       };
13 }

     点击查看演示效果

 

posted on 2016-08-29 16:53  Qboooogle  阅读(804)  评论(0编辑  收藏  举报