关于js问题。

$(document).swipeUp(function(){
if (isAnimating) return;
last.row = now.row;
last.col = now.col;
if (last.row != 10) { now.row = last.row+1; now.col = 1; pageMove(towards.up);}    
})

$(document).swipeDown(function(){
if (isAnimating) return;
last.row = now.row;
last.col = now.col;
if (last.row!=1) { now.row = last.row-1; now.col = 1; pageMove(towards.down);}    
})

请教大神解释一下这段代码,这个是移动端单页上下滑动的代码,谢谢。

阅读 2.9k
5 个回答
新手上路,请多包涵

代码不是很全,不知道last 和 now 含义

这段看起来像是个zepto的插件吧,因为用到了swipe事件回调。翻页的动作具体在pageMove函数里(能看到传进去的参数是页面滑动的方向),题主给的这个是挂到“上滑”“下滑”事件上的回调处理,发生事件后首先检查isAnimating变量,就是看当前有没有进行中的翻页(pageMove里肯定一进去就是设置这个变量为ture的,防止处理一半再来一个的冲突),没有的话,更新last.row(上一页计数器)为now.row(当前页计数器),然后判断是不是第一页/最后一页,如果不是的话后边就执行翻页操作(用pageMove)。那个col应该是处理页面上的组件效果的(类似翻页后,会有小东西一个个的移动淡入那种),不用管。

新手,说的有点乱,轻拍?

猜测:

// 监听向上滑动事件
$(document).swipeUp(function(){
    // 滑动过程未结束,直接返回
    if (isAnimating) return;
    // 保存当前行和列
    last.row = now.row;
    last.col = now.col;  // 这一行无意义,后面并没有使用
    // 当行数不是 10 的时候,行数加 1,列数始终等于 1,同时执行 pageMove 函数
    if (last.row != 10) { now.row = last.row+1; now.col = 1; pageMove(towards.up);}    
})
// 类似上面的函数
$(document).swipeDown(function(){
    if (isAnimating) return;
    last.row = now.row;
    last.col = now.col;
    if (last.row!=1) { now.row = last.row-1; now.col = 1; pageMove(towards.down);}    
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏