zoukankan      html  css  js  c++  java
  • 移动端轮播效果

    一、涉及知识点

    1.touchstart、touchmove、touchend

    2.触摸参数,事件e

    e.touches:屏幕中所有手势列表;

    e.touches[0]:获取第一个手势,是一个json对象(属性有pageX,pageY...),用于touchstart,touchmove事件中;

    e.changedTouches:获取发生该事件的手势列表;

    e.changedTouches[0]:用于touchend;

    3.移动端网速慢,轮播图片加载,做了一些技巧性处理:

    html结构中,第一张图的src属性填写轮播图,其他图片用站位图片代替;

    在js首次加载中,克隆第一张图(fc)和最后一张图片(lc),将fc追加到图片列表之后,将lc添加到图片列表之前,加载出包含原第一图片,共三张图片;

     ~~作为一个web初级程序员,多写拆轮子,多写轮子才是王道,多总结~~

    4.判断当前图片是否加载完,直接上代码了:

    function loadImag($img,callback){
      if(!($img&&$img.length)) return;
      $img.attr("src",$img.attr("data-src"));
      callback&&($img[0].onload=function(){
      callback();
      $img[0].onload=null;
      })
    }

    5.transition、transform、translate3d,老是弄混这三个属性,这里理解一下

    transtion:all 0.4s ease;过渡,效果

    transform:空间上的效果

    transform:translate3d(x,y,z);

    6.设置浏览器兼容。直接抄袭别人代码,心里有愧,不好意思拿到这里,这是在本来生活前端主管写的,自己写一遍熟悉一下:

    var ani = {};

    ani.transition = "all 0.4s ease"; //-webkit-transition
    ani.transform = "translate3d(0, 0, 0)"; //-webkit-transform

    CSS3(ani);

    //输出结果 this.CSS3({"属性名":"属性值","属性名":"属性值","属性名":"属性值"})
    //{"属性名":"属性值","属性名":"属性值","属性名":"属性值"}

    使用情况1:this.imgList.css(this.CSS3(ani));

    使用情况2:this.imgList.css(this.CSS3("transition","all 0.4s ease"));

    function CSS3(){
      var prefix=["-webkit-","-o-","-ms-","-moz-"],
      o={};
      if("string"==typeof(argument[0])){
        o[argument[0]]=argument[1];
      }else{
        o=argument[0];
      }
      for(var i=0,lth=prefix.length;i<lth;i++){
        for(var k in o){
          o[prefix+k]=o[k];
        }
      }
      return o;
    }

      

  • 相关阅读:
    zabbix--完整安装攻略
    python--8大排序(原理+代码)
    python--二分法查找
    celery生产者-消费者
    python--基础知识点梳理(之数据结构)
    mysql--事务详解
    python--基础知识点梳理(三)深浅拷贝、进线协程、os和sys、垃圾回收机制、读文件的三种方式
    python--基础知识点梳理(二)面向对象
    python--基础知识点梳理(一)数据类型、迭代生成装饰器、函数
    java 集合
  • 原文地址:https://www.cnblogs.com/haigelang/p/4977857.html
Copyright © 2011-2022 走看看