轮播效果预览
结构布局
三层布局:
——page-wrapp
—— ——item-wrap[轮播效果是通过这一层的滚动实现的]
—— —— ——sub-item
说明:
- page-wrapp作为轮播盒子框架,即限定可见区域
- item-wrap作为轮播外层的盒子
- sub-item作为每一个轮播图的盒子
1 .page-wrapp的宽高等于sub-item的宽高,page-wrapp的overflow属性设为hidden,这样超出page-wrap范围的将是不可见的
2 .item-wrap的宽度等于sub-item的总宽度,,多个sub-item并排[可以用浮动的方式实现],高度等于sub-item的高度.
3 .这样虽然item-wrap的宽度大于page-wrapp的宽度,但因为page-wrapp设置了overflow:hidden,所以也只能显示一张图片的大小。
4 .为了得到轮播的效果这时可以使用动画将item-wrap在水平方向平移,也就得到了轮播的效果
<div class="page-wrapp"> <div class="item-wrap"> <div class="sub-item"> <img src="/img/compents/background01.jpg" alt="" class="img-item"> </div> <div class="sub-item"> <img src="/img/compents/cat-cartoon.jpg" alt="" class="img-item"> </div> <div class="sub-item"> <img src="/img/compents/cup.jpg" alt="" class="img-item"> </div> <div class="sub-item"> <img src="/img/compents/leaf.jpg" alt="" class="img-item"> </div> <div class="sub-item"> <img src="/img/compents/nature01.jpg" alt="" class="img-item"> </div> </div> </div>
|
css样式
.page-wrapper, .page-wrapper .item-wrap, .page-wrapper .sub-item, .page-wrapper .sub-item .img-item { position: relative; height: 100%; } .page-wrapper { min-width: 720px; min-height: 500px; overflow: hidden; zoom: 1; } .page-wrapper .item-wrap { width: 500%; overflow: hidden; zoom: 1; } .page-wrapper .sub-item { float: left; width: 20%; } .page-wrapper .sub-item .img-item { width: 100%; }
|
轮播动画实现
添加轮播按钮,点击时触发轮播事件
<div class="left-btn-wrap"> <span class="silder-left-btn" id="leftBtn"></span> </div> <div class="right-btn-wrap"> <span class="silder-right-btn" id="rightBtn"></span> </div>
|
这里可以使用jQuery的animate动效实现轮播效果
参数说明: $itemWrap=$('.item-wrap'); 轮播外层盒子 */ $leftBtn.on('click', function(){ $itemWrap.animate({ 'margin-left': 0 - $imgItems.width() }, 1000, function(){ $itemWrap.append($('.item-wrap .sub-item').first()); $itemWrap.css("margin-left",0); }) }) $rightBtn.on('click', function(){ $itemWrap.prepend($('#itemWrap .sub-item').last()); $itemWrap.css("margin-left",0 - $imgItems.width()); $itemWrap.animate({ 'margin-left': 0 }, 1000) })
|
这样就可以实现一个简单的轮播图的效果,上面给出的事例还带有轮播导航条[右下角],这可以通过增加一个data-index属性来记录轮播索引位置。
注:这中做法每旋转一次就需要动态的修改DOM结构,另一种思路是将第一屏copy到最后的方式来实现无缝衔接
查看完整demo
github:https://github.com/xiaofuzi/gallery