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 相关文章推荐
jquery 学习之二 属性 文本与值(text,val)
Nov 25 Javascript
js仿百度贴吧验证码特效实例代码
Jan 16 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
Jan 23 Javascript
用原生js统计文本行数的简单示例
Aug 19 Javascript
jQuery实现的自动加载页面功能示例
Sep 04 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
vuex中使用对象展开运算符的示例
Sep 25 Javascript
AngularJS 实现购物车全选反选功能
Oct 24 Javascript
深度了解vue.js中hooks的相关知识
Jun 14 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
Oct 12 Javascript
javascript实现蒙版与禁止页面滚动
Jan 11 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
Aug 28 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.ini 中文版
2006/10/28 PHP
PHP中strtotime函数使用方法分享
2012/01/10 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
vue实现计算器功能
2020/02/22 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
[05:24]TI9采访——教练
2019/08/24 DOTA
python3 实现对图片进行局部切割的方法
2018/12/05 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
django的model操作汇整详解
2019/07/26 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
一套带网友答案的.NET笔试题
2016/12/06 面试题
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
德尔福集团DELPHI的笔试题
2012/02/22 面试题
数据员岗位职责
2013/11/19 职场文书
大学生实习推荐信
2015/03/27 职场文书
Python语言中的数据类型-序列
2022/02/24 Python