移动端支持左右无限滑动切换的图片轮播插件-TouchSlide

Posted by

官方链接: http://www.superslide2.com/TouchSlide/

TouchSlide 是纯javascript打造的触屏滑动特效插件,面向手机、平板电脑等移动终端,能实现触屏焦点图、触屏Tab切换、触屏多图切换等常用效果。
插件开源、体积小、简单实用、功能强大。

最近手机图片轮播要求无限循环,以前都是到最后一张就不能手动切换下一张,只能向上一张切换,试了好几个插件,最终选择了TouchSlide。

TouchSlide 的代码非常简单,并且禁用了手机浏览器左滑关闭页面的功能,所以体验很好,不会在向左滑动时,导致页面被关闭了。

演示案例:http://www.superslide2.com/TouchSlide/demo.html

下载地址:http://www.superslide2.com/TouchSlide/downLoad.html

正文开始

1、引用 TouchSlide.js, 具体路径自行设置。

<head>  
    <script type="text/javascript" src="../TouchSlide.1.0.js"></script>  
</head>  

2、html结构

<div id="focus" class="focus">
    <div class="hd">
        <ul></ul>
    </div>
    <div class="bd">
        <ul>
                <li><a href="#"><img _src="images/m1.jpg" src="images/blank.png" /></a></li>
                <li><a href="#"><img _src="images/m2.jpg" src="images/blank.png"/></a></li>
                <li><a href="#"><img _src="images/m3.jpg" src="images/blank.png"/></a></li>
        </ul>
    </div>
</div>

3、样式,具体样式自行设置

/* 本例子css -------------------------------------- */
.focus{ width:320px; height:140px;  margin:0 auto; position:relative; overflow:hidden;   }
.focus .hd{ width:100%; height:11px;  position:absolute; z-index:1; bottom:5px; text-align:center;  }
.focus .hd ul{ display:inline-block; height:5px; padding:3px 5px; background-color:rgba(255,255,255,0.7); 
    -webkit-border-radius:5px; -moz-border-radius:5px; border-radius:5px; font-size:0; vertical-align:top;
}
.focus .hd ul li{ display:inline-block; width:5px; height:5px; 
-webkit-border-radius:5px; -moz-border-radius:5px; 
border-radius:5px; background:#8C8C8C; 
margin:0 5px;  
vertical-align:top; overflow:hidden;   }
.focus .hd ul .on{ background:#FE6C9C;  }

.focus .bd{ position:relative; z-index:0; }
.focus .bd li img{ width:100%;  height:140px;
 background:url(images/loading.gif) center center no-repeat;  }
.focus .bd li a{ -webkit-tap-highlight-color:rgba(0, 0, 0, 0); /* 取消链接高亮 */  }

4、TouchSlide设置

<script type="text/javascript">
    TouchSlide({ 
        slideCell:"#focus",
        titCell:".hd ul", //开启自动分页 autoPage:true ,此时设置 titCell 为导航元素包裹层
        mainCell:".bd ul", 
        effect:"left", 
        autoPlay:true,//自动播放
        autoPage:true, //自动分页
        switchLoad:"_src" //切换加载,真实图片路径为"_src" 
    });
</script>

至此,代码结束。

TouchSlide 可以说是 SuperSlide 手机简化版,不同的地方在于:
1、TouchSlide是纯javascript开发的,不依赖任何js库,鉴于此,TouchSlide调用方法和SuperSlide有点不同。
调用方法为:TouchSlide({slideCell:"#slider",effect:"leftLoop"});(slideCell必须为id对象);同样效果,SuperSlide调用方法为:jQuery("#slider").slide({ effect:"leftLoop" });
2、为了方便使用,我用js模拟了简单的jQuery选择器,只支持“#”“.”“标签名称”,用空格隔开。除了slideCell必须用id选择器外,其它titCell等都可以使用,例如:titCell:".title li"
3、除了上述2个不同,其它是一致的,想了解更多可以下载demo研究。

下面是TouchSlide的参数

参数版本默认值说明详细
slideCell1.0"#touchSlide"容器对象(执行效果的对象,必须是id对象!)图解>>
titCell1.0".hd li"导航元素对象图解>>
mainCell1.0".bd"切换元素的包裹层对象图解>>
autoPage1.0false系统自动分页,需结合titCell使用,若为true,则titCell为导航元素的包裹层对象图解>>
effect1.0"left"效果 || left:左滚动;|| leftLoop:左循环滚动;
autoPlay1.0false自动运行
delayTime1.0200毫秒;切换效果持续时间(执行一次效果用多少毫秒)。
interTime1.02500毫秒;自动运行间隔(隔多少毫秒后执行下一个效果)
switchLoad1.0null内容切换加载,暂时只支持图片,必须配合后台程序使用。当为图片的时候switchLoad为图片实际路径的属性名称,例如switchLoad:"_src"详解>>
startFun1.0null每次切换效果开始时执行函数,用于处理特殊情况或创建更多效果。用法 satrtFun:function(i,c){ }; 其中i为当前分页,c为总页数详解>>
endFun1.0null每次切换效果结束时执行函数,用于处理特殊情况或创建更多效果。用法 endFun:function(i,c){ }; 其中i为当前分页,c为总页数详解>>
pageStateCell1.0".pageState"分页状态对象,用于显示分页状态,例如:2/3
prevCell1.0".prev"前一个/页按钮对象。
nextCell1.0".next"后一个/页按钮对象。
pnLoop1.0true前/后按钮是否继续循环,若为false则当翻动到最前/后页时,前/后按钮点击无效,同时增加prevStop/nextStop类名控制样色
defaultIndex1.00默认的当前位置索引。0是第一个; defaultIndex:1 时,相当于从第2个开始执行
titOnClassName1.0"on"当前titCell位置自动增加的class名称

Leave a Reply

Your email address will not be published. Required fields are marked *