• 移动端轮播效果


    一、涉及知识点

    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;
    }

      

  • 相关阅读:
    09Socket编程
    一个平时写程序通用的Makefile样例
    08socket编程
    07socket编程
    06socket编程
    01TCP/IP基础
    25管道
    jQuery,CSS:offset()方法,CSS scrollTop属性
    jQuery:length属性:是jQuery对象对应元素在document中的个数,返回值数据类型是Number
    JS正则表达式
  • 原文地址:https://www.cnblogs.com/haigelang/p/4977857.html
Copyright © 2020-2023  润新知