zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题


Posted in Javascript onAugust 27, 2015

在移动web开发中,由于手机界面较小,为了能展示更多的图片经常使用轮播图并且还需要考虑到手机流量的问题,通过请教他人以及百度,个人感觉swipe.js比较好用。

它是一个纯javascript工具,不需要跟其它js库一起导入,同时兼容jQuery和zepto,压缩版的大小只有6kb很适合移动端的开发,它的git地址:https://github.com/thebird/swipe

在git上对其的使用方式介绍的相当清楚,关键代码如下

<div id='slider' class='swipe'>
 <div class='swipe-wrap'>
  <div></div>
  <div></div>
  <div></div>
 </div>
</div>
.swipe {
 overflow: hidden;
 visibility: hidden;
 position: relative;
}
.swipe-wrap {
 overflow: hidden;
 position: relative;
}
.swipe-wrap > div {
 float:left;
 width:100%;
 position: relative;
}
window.mySwipe = Swipe(document.getElementById('slider'),opt);

其中.swipe嵌套.swipe-wrap这个html树模型最好不要改动,至于最里面的div可以更换其他,如li 等

仅仅只需要上诉的几段代码即可完成轮播图的制作,但是在实际的项目中,特别是在首页顶部的banner上还需要加入page的索引,还需要对控件的参数进行配置,它的主要参数配置如下:

startSlide Integer (default:0) - 开始滚动的位置

speed Integer (default:300) - 动画滚动的间隔(秒数)

auto Integer - 开始自动幻灯片(以毫秒为单位幻灯片之间的时间)

continuous Boolean (default:true) - 创建一个无限的循环(当滑动到所有动画结束时是否循环滑动)

disableScroll Boolean (default:false) - 当滚动滚动条时是否停止幻灯片滚动 

stopPropagation Boolean (default:false) - 是否停止事件冒泡 

callback Function - 幻灯片运行中的回调函数

transitionEnd Function - 动画运行结束的回调函数 

而他的主要api函数如下:

prev():上一页 

next():下一页

getPos():获取当前页的索引 

getNumSlides():获取所有项的个数

slide(index, duration):滑动方法

以下是偶在项目中的实际运用的代码

<div class="banner">
      <div id="slider" class="swipe">
        <ul class="swipe-wrap">
          <li>
            <a href="javascript:void(0)">
              <img src="img/1.jpg">
            </a>
          </li>
          <li>
            <a href="javascript:void(0)">
              <img src="img/2.jpg">
            </a>
          </li>
          <li>
            <a href="javascript:void(0)">
              <img src="img/3.jpg">
            </a>
          </li>
          <li>
            <a href="javascript:void(0)">
              <img src="img/4.jpg">
            </a>
          </li>
          <li>
            <a href="javascript:void(0)">
              <img src="img/5.jpg">
            </a>
          </li>
        </ul>
        <ul class="slide-trigger">
          <li class="cur"></li>
          <li></li>
          <li></li>
          <li></li>
          <li></li>
        </ul>
      </div>
    </div>
.banner {
        width: 100%;
        position: relative;
      }
      .banner .swipe {
        overflow: hidden;
        position: relative;
      }
      .banner .swipe-wrap {
        overflow: hidden;
        position: relative;
        list-style: none;
      }
      .banner .swipe-wrap li {
        float: left;
        position: relative;
      }
      .banner img {
        width: 100%;
        vertical-align: middle;
      }
      .banner .slide-trigger {
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        z-index: 10;
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        -webkit-box-pack: center;
        -moz-box-pack: center;
        -ms-flex-pack: center;
        -webkit-justify-content: center;
        justify-content: center;
        list-style: none;
      }
      .banner .slide-trigger li {
        width: 10px;
        height: 10px;
        background: #FFF;
        margin: 5px;
        -webkit-border-radius: 50%;
        -moz-border-radius: 50%;
        -ms-border-radius: 50%;
        -o-border-radius: 50%;
        border-radius: 50%;
      }
      .banner .slide-trigger .cur {
        background: #2fc7c9;
      }
var slider = $('#slider');
    slider.find(".slide-trigger").find("li").eq(0).addClass("cur");
    window.mySwipe = new Swipe(document.getElementById('slider'), {
      speed: 400,
      auto: 3000,
      callback: function(index, elem) {
        slider.find(".slide-trigger").find("li").eq(index).addClass("cur").siblings().removeClass("cur");
      }
    });

zepto中的swipeUp,swipeDown不起效果

我正在看zepto,然后看到里面一些事件的时候发现一个问题:

$(‘body').swipeUp(function(e){
alert(‘swipeUp');//偶尔有效
})
$(‘body').swipeDown(function(e){
alert(‘swipeDown');//偶尔有效
})
$(‘body').tap(function(){
alert(‘tap');//ok
})
$(‘body').swipeLeft(function(){
alert(‘swipeLeft');//ok
})
$(‘body').swipeRight(function(){
alert(‘swipeRight');//ok
})

在移动端swipeUp,swipeDown不起效果,另外几个有效,是怎么回事呢?

解决方案一:

zepto要引入 touch.js模块 官网上是没有的 去github下载 然后引入 touch.js即可

解决方案二:

是因为阻止了浏览器默认的下拉事件,加上下面一段代码。

document.addEventListener('touchmove', function (event) {
event.preventDefault();
}, false);

Javascript 相关文章推荐
javascript showModalDialog模态对话框使用说明
Dec 31 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
Dec 15 Javascript
Js 导出table内容到Excel的简单实例
Nov 19 Javascript
jqeury-easyui-layout问题解决方法
Mar 24 Javascript
window.location.href IE下跳转失效的解决方法
Mar 27 Javascript
jquery使用each方法遍历json格式数据实例
May 18 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
Sep 10 Javascript
jQuery焦点图插件SaySlide
Dec 21 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
Dec 02 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
Oct 26 Javascript
使用FormData实现上传多个文件
Dec 04 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
Aug 07 Javascript
jquery实现左右滑动菜单效果代码
Aug 27 #Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
Aug 27 #Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
Aug 27 #Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 #Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 #Javascript
JavaScript中的Function函数
Aug 27 #Javascript
jquery带动画效果幻灯片特效代码
Aug 27 #Javascript
You might like
php计算程序运行时间的简单例子分享
2014/05/10 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
门卫工作岗位职责
2013/12/17 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
小学生保护环境倡议书
2014/05/15 职场文书
科技之星事迹材料
2014/06/02 职场文书
商务经理岗位职责
2014/08/03 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
上班离岗检讨书
2014/09/10 职场文书
签字仪式主持词
2015/07/03 职场文书
上班旷工检讨书
2015/08/15 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
python自动化八大定位元素讲解
2021/07/09 Python