web前端|js教程
javascript,图片,移动
web前端-js教程
rsa加密算法c源码下载,蓝桥杯比赛可以用vscode吗,ubuntu16备份,tomcat启动后网页显示乱码,sqlite行不行,常州网页设计,一个服务器可以放多少网站,wp主题会员注册插件,前端框架的引用,从爬虫到入狱,php 平均数,seo如何优化关键词排名,免费行业网站源码,网页模板关于导航,css 布局模板,漂亮的错误页面,管理系统的sql编写,小程序php传值lzw
微信oa源码,vscode打开后内存跑满,看图软件ubuntu,杀掉tomcat进程名称,403反爬虫,PHP外包客服,武汉seo哪个公司最靠谱lzw
批发源码,ubuntu日志怎么打开,爬虫提取pdf数据,seek() php,合肥英文seolzw
//REM ~function(){ document.documentElement.style.fontSize = document.documentElement.clientWidth/640*100 + px; }() //页面中如果自己使用了TOUCH MOVE等原生事件,需要把浏览器的默认行为阻止掉 $(document).on( ouchmove touchstart touchend,function(ev){ ev.preventDefault(); }) //BANNER var bannerRender = (function(){ var winW = document.documentElement.clientWidth, maxL = 0, minL = 0; var $banner = $(.banner), $wrapper = $banner.children(.wrapper), $slideList = $wrapper.children(.slide), $imgList = $wrapper.find(img); var step = 1, count = 0, followTimer = null; //public fn function isSwipe(strX,strY,endX,endY){ return Math.abs(endX - strX)>30 || Math.abs(endY - strY) > 30) } function swipeDir(strX,strY,endX,endY){ return Math.abs(endX - strX)>=Math.abs(endY - strY)?(endX - strX>0? ight:left):(endY - strY>0?down:up); } //touch start function dragStart(ev){ var point = ev.touches[0]; $wrapper.attr({ strL:parseFloat($wrapper.css(left)), strX:point.clientX, strY:point.clientY, isMove:false, dir:null, changeX:null }) } //touch move function dragIng(ev){ var point = ev.touches[0]; var endX = point.clientX, endY = point.clientY, strX = parseFloat($wrapper.attr(strX)), strY = parseFloat($wrapper.attr(strY)), strL = parseFloat($wrapper.attr(strL)), changeX = endX - strX; //计算出是否滑动以及滑动的方向:只有是左右滑动才进行处理 var isMove = isSwipe(strX,strY,endX,endY), dir = swipeDir(strX,strY,endX,endY); if(isMove && /(left|right)/i.test(dir)){ $wrapper.attr({ isMove:true, dir:dir, changeX:changeX }); var curL = strL+changeX; curL = curL>maxL?maxL:(curL=winW/2){ if(dir===left){ step++; }else{ step--; } } } $wrapper[0].style.webkitTransitionDuration = .2s; $wrapper.css(left,-step*winW); lazyImg(); //动画运动过程中,我们监听一个定时器:动画运动完成判断当前是否运动到边界,如果运动到达了边界,我们让其立马回到自己的真实位置 window.clearTimeout(followTimer) followTimer = window.setTimeout(function(){ if(step===0){ $wrapper[0].style.webkitTransitionDuration = s; $wrapper.css(left,-(count-2)*winW); step = count-2; lazyImg(); } if(step===count-1){ $wrapper[0].style.webkitTransitionDuration = s; $wrapper.css(left,-winW); step = 1; lazyImg(); } window.clearTimeout(followTimer) },200) } //图片延迟加载,让当前的活动块及相邻的两个活动块进行加载 function lazyImg(){ var $cur = $slideList.eq(step), $tar = $cur.add($cur.prev()).add($cur.next()); $tar.each(function(index,item){ var $img = $(item).children(img); if($img.attr(isLoad)=== rue){ //ATTR存储或者获取的属性值都是一个字符串,如果当前的图片已经加载过了,我们就不需要重新的加载了 return; } var oImg = new Image; oImg.src = $img.attr(src); oImg.onload = function(){ $img.attr({ src:this.src, isLoad:true }).css(display,lock) oImg = null; } }) } return{ init:function(){ //init css style count = $slideList.length; minL = -($slideList.length-1)*winW; $wrapper.css(width,$slideList.length*winW); $slideList.css(width,winW); //lazy img lazyImg(); $banner.on( ouchstart,dragStart).on( ouchmove,dragIng).on( ouchend,dragEnd) } } })() bannerRender.init();