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 三种不同位置代码的写法
Oct 25 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
Mar 07 Javascript
JavaScript中操作Mysql数据库实例
Apr 02 Javascript
微信JSSDK上传图片
Aug 23 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
Dec 17 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
Sep 14 Javascript
ES6新特性三: Generator(生成器)函数详解
Apr 21 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
vue webpack打包优化操作技巧
Feb 22 Javascript
Vue 页面跳转不用router-link的实现代码
Apr 12 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
Aug 15 Javascript
javascript实现画板功能
Apr 12 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颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
node.js中的console用法总结
2014/12/15 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
javascript prototype原型详解(比较基础)
2016/12/26 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
深入理解Python爬虫代理池服务
2018/02/28 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
Python中print函数简单使用总结
2019/08/05 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
环境科学毕业生自荐信
2013/11/21 职场文书
财务会计人员岗位职责
2013/11/30 职场文书
党员思想汇报范文
2013/12/30 职场文书
研修心得体会
2014/09/04 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
撤诉申请怎么写
2015/05/19 职场文书
黑白记忆观后感
2015/06/18 职场文书
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers