Html的代码:

<div class="carousel_img"><div class="car_img" style="background:url(files/DocMatchImg_1.png) no-repeat;background-size:cover;background-position:center;"></div><div class="car_img" style="background:url(files/DocMatchImg_2.png) no-repeat;background-size:cover;background-position:center;"></div><div class="car_img" style="background:url(files/DocMatchImg_1.png) no-repeat;background-size:cover;background-position:center;"></div><div class="car_img" style="background:url(files/DocMatchImg_2.png) no-repeat;background-size:cover;background-position:center;"></div><div class="car_img" style="background:url(files/DocMatchImg_2.png) no-repeat;background-size:cover;background-position:center;"></div><div class="carousel_index"><div class="carousel_icon carousel_icon1"></div><div class="carousel_icon carousel_icon2"></div><div class="carousel_icon carousel_icon2"></div><div class="carousel_icon carousel_icon2"></div><div class="carousel_icon carousel_icon2"></div></div>
</div>

css代码:

.carousel_img{width:100%;position:relative;top:0;left:0;overflow:hidden;height:200px;}
.car_img{width:100%;height:200px;position:absolute;top:0;left:0;}
.carousel_index{position:absolute;top:180px;right:0;padding-right:24px;height:12px;}
.carousel_icon{width:12px;height:12px;float:left;}
.carousel_icon1{background:url(../image/DovmatchWhite.png) no-repeat;background-size:8px;background-position:center center;}
.carousel_icon2{background:url(../image/DovmatchGrey.png) no-repeat;background-size:8px;background-position:center center;}

jq代码:

$(document).ready(function(e) {var imgObj = document.getElementsByClassName("car_img");var imgLen = imgObj.length;var windowWidth = $(window).width();$(".car_img").bind("click",function(event){});int = setInterval(carouselImg,3000);for(var i=0;i<imgLen;i++){$(".car_img").eq(i).css({"top":"0","left":i*windowWidth});imgObj[i].addEventListener('touchstart',touchstart,false);imgObj[i].addEventListener('touchmove',touchmove,false);imgObj[i].addEventListener('touchend',touchend,false);}});function touchstart(event){event.preventDefault();if( event.targetTouches.length == 1 ){clearInterval(int);var touch = event.targetTouches[0];pressX = touch.pageX;}
}/**定义每次滑动的距离spanX*定义当前滑动的索引位置thisIndex,轮播图的个数imgLen*/
function touchmove(event){event.preventDefault();if( event.targetTouches.length == 1 ){var touch = event.targetTouches[0];var spanX = touch.pageX - pressX ,windowWidth = $(window).width();var $car_img = $(".car_img"),$this = $(this);var thisIndex = $this.index(),imgLen = $(".car_img").length;for(var i=0;i < imgLen;i++){$car_img.eq(i).css("left",windowWidth*(i-thisIndex)+spanX);}}
}function touchend(event){var $car_img = $(".car_img"),$this = $(this),$carousel_icon = $(".carousel_icon"),windowWidth = $(window).width();var thisIndex = $this.index(),imgLen = $(".car_img").length;var thisLeft = parseInt($(this).css("left"));//向左滑动执行的方法if(thisLeft < -32 && thisIndex < imgLen){//当轮播图滑动最后一个位置时,当前轮播图位置不变if(thisIndex == imgLen-1){for(var i=0;i < imgLen;i++){$car_img.eq(i).animate({"left":windowWidth*(i-thisIndex)},300);}}//当轮播不在最后一个位置时,轮播图位置变化方法else{for(var i=0;i < imgLen;i++){$car_img.eq(i).animate({"left":windowWidth*(i-(thisIndex+1))},300);$carousel_icon.eq(i).addClass("carousel_icon2").removeClass("carousel_icon1");}$carousel_icon.eq(thisIndex+1).removeClass("carousel_icon2").addClass("carousel_icon1");}}//向右滑动执行的方法else if(thisLeft > 32 && thisIndex >= 0){//当轮播图在第一个位置时if( thisIndex == 0){for(var i=0;i < imgLen;i++){$car_img.eq(i).animate({"left":windowWidth*(i-thisIndex)},300);}}//轮播图不在第一个位置else{for(var i=0;i < imgLen;i++){$car_img.eq(i).animate({"left":windowWidth*(i-(thisIndex-1))},300);$carousel_icon.eq(i).addClass("carousel_icon2").removeClass("carousel_icon1");}$carousel_icon.eq(thisIndex-1).removeClass("carousel_icon2").addClass("carousel_icon1");}}//当滑动距离在大于-32px并且小于32px时,当前轮播图位置不变else{for(var i=0;i < imgLen;i++){$car_img.eq(i).animate({"left":windowWidth*(i-thisIndex)},100);}}int = setInterval(carouselImg,3000);
}function carouselImg(){var $car_img = $(".car_img"),$carousel_icon = $(".carousel_icon"),windowWidth = $(window).width();var imgLen = $car_img.length,imgZeroIndex = 0;for(var i=0;i<imgLen;i++){var everyImgLeft = parseInt($car_img.eq(i).css("left"));if(everyImgLeft == 0){imgZeroIndex = i;break;}    } if(imgZeroIndex == imgLen-1){for(var i=0;i<imgLen;i++){$car_img.eq(i).animate({"left":windowWidth*i},300);$carousel_icon.eq(i).removeClass("carousel_icon1").addClass("carousel_icon2");}$carousel_icon.eq(0).removeClass("carousel_icon2").addClass("carousel_icon1");}else{for(var i=0;i<imgLen;i++){$car_img.eq(i).animate({"left":windowWidth*(i-(imgZeroIndex+1))},300);$carousel_icon.eq(i).removeClass("carousel_icon1").addClass("carousel_icon2");}$carousel_icon.eq(imgZeroIndex+1).removeClass("carousel_icon2").addClass("carousel_icon1");}
}

代码有缺陷,其中touchstart函数中点击开始的X坐标pressX不用全局变量该怎么表示?还有int这样的一个全局变量,没有解决好,有大神可以指正下。

展示效果图

用jq实现移动端滑动轮播以及定时轮播效果相关推荐

  1. 一键生成轮播图,轮播图插件

    一键生成轮播图,轮播图插件 简介 写练习的时候发现每次写轮播图都觉得很麻烦,突发奇想,何不写个轮播图插件,需要轮播图的时候,直接调用插件一键生成就行了!!! 于是乎,便写了以下代码(因为博主还是在校学 ...

  2. html怎么做产品轮播图,商品轮播图是什么意思(html轮播图怎么制作)

    但轮播图对用户真的有意义吗?或者它只是设计者用来偷懒,将内容一股脑塞进去的工具呢? 不论将这个问题抛向谁,他们都会告诉你,"轮播图就是个反面模式(anti-pattern)."轮播 ...

  3. 【Swift】自定义控件无限轮播 + 无限图片轮播

    CocoaPods安装 pod 'PGBannerSwift' 复制代码 使用 1.无限图片轮播 首先引入import PGBannerSwift let banner = PGBanner(fram ...

  4. web前端项目详解:OPPO首页进度条特效(定时轮播)

    web前端项目详解:OPP首页进度条特效(定时轮播) 知识点:布局结构分析,定位运用,页面兼容性问题,Jquery的基础运用(修改盒子样式,动画方法,简单算法,淡入淡出方法,定时器方法)代码结构 效果 ...

  5. 定时轮播Echarts造成内存泄漏致使浏览器崩溃问题

    提示:定时轮播Echarts造成内存泄漏致使浏览器崩溃问题 文章目录 前言 一.原因 二.解决办法 三.辅助工具 前言 一.原因 1.echarts图未彻底删除: 2.setTimeout和setIn ...

  6. android ViewPager轮播制作成品——轮播制作(六)

    android ViewPager轮播制作成品--轮播制作(六) 本文主要参考文章:Android 使用ViewPager实现左右循环滑动图片 下面整体介绍一下本系列文章.目的是想要做一个广告.通知轮 ...

  7. uni-app:多功能轮播图,堆叠试轮播,文本轮播,图文轮播

    插件地址[前往] mosowe-swiper:适用于uni-app的轮播图插件 轮播组件,本插件兼容H5.APP.微信小程序.支付宝小程序 组件功能 普通轮播(文本.图片,图文轮播,支持上下.左右轮播 ...

  8. 滚动轮播图+滚动轮播图定时器的添加(还原lol首页的轮播图)

    滚动轮播图+滚动轮播图定时器的添加(还原lol首页的轮播图) 每一步都有详细的注释: <!DOCTYPE html> <html lang="en"> &l ...

  9. web 完整轮播图 前端 轮播图 详细

    web 完整轮播图 前端 轮播图 预览: 应用 HTML + CSS + JS HTML CSS JS 预览: 应用 HTML + CSS + JS JS代码分析如下: html代码比较简短,这里用j ...

最新文章

  1. cocos2dx对所有子节点设置透明度
  2. CentOS-6.4 minimal - 安装VMware Tools(linux)
  3. 科大星云诗社动态20210120
  4. java重写面试题_Java面试题:重写了equals方法,为什么还要重写hashCode方法?
  5. [Linux 使用(2)] 64位Linux下安装jboss-as-7.1 以及jdk1.7
  6. Dart网络编程-备忘录2.0
  7. 如何从程序中改变音量?
  8. 蛋糕是叫胚子还是坯子_这个生日蛋糕太适合手残党了,不会裱花也能做,学会再不买着吃了...
  9. JNCIS-SP学习指南卷1 第一章:协议无关的路由
  10. android 字符串大小写转换
  11. 如何修改网易邮箱大师电脑端的消息提示音?超简单
  12. 关于麒麟座开发板串口打印乱码与其它工程用官方源码出问题的解决方案
  13. 华为正式上线鸿蒙,华为Mate30、鸿蒙OS资料汇总,方舟编译器正式上线
  14. docker仓库——搭建registry私有仓库
  15. 195. 中文小说出海资料整理
  16. 垂直起降多旋翼调研资料
  17. Ext Js 关于GridPanel---EditorGridPanel
  18. 辰视携3D机器视觉技术亮相第九届中国电子信息博览会
  19. 三星三防s8计算机功能在哪里,三星Galaxy S8防水性能怎么样 三星S8防水介绍【图文详解】...
  20. RBF神经网络学习笔记一

热门文章

  1. WebAPI框架里设置异常返回格式统一
  2. error LNK2019: unresolved external symbol “__declspec(dllimport) public: __thiscall 的解决方案
  3. 解决idea中找不到程序包和找不到符号的问题
  4. win11如何加快搜索速度 Windows11更改文件索引加快搜索速度的设置方法
  5. Win11开机桌面假死怎么办 win11开机桌面假死的解决方法
  6. JDBC的API与德鲁伊Druid连接池配置
  7. java并发常量_Java并发编程-常量对象(七)
  8. IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析
  9. 麦克纳姆轮全向移动机器人纵向直线运动分析
  10. 2432功率计使用说明_Quarq功率计的安装、使用和维护