效果图PC端:

  1. 支持点击浏览
  2. 支持方向键浏览
  3. 支持图片延迟加载
  4. 支持自动定时加载

效果图手机端:

  1. 支持自动定时加载
  2. 支持图片延迟加载
  3. 支持点击浏览
  4. 支持触屏滑动浏览

HTML代码片段:

<div class="slide"><ul></ul><div class="dot"></div>
</div>

CSS代码片段:

.slide {position: relative; max-width: 440px;min-height: 480px; overflow: hidden; margin: 0px auto; }
.slide:after {content: ''; display: block; width: 100%; padding-top: 50%; }
.slide ul {position: absolute;left: 0; top: 0;width: 100%;height: 100%;padding: 0;margin: 0;}
.slide li {list-style: none;position: absolute;left: 0;top: 0;width: 100%;height: 100%;}
.slide li:first-child {z-index: 1;}
.slide li.cur {z-index: 1;transition:left .2s linear;}
.slide li img {position: absolute;left: 0; top: 0;width: 100%;height: 100%;border: none;}
.slide .dot {position: absolute; left: 50%; bottom: 10px;margin-left: -40px; font-size: 0;z-index: 2;}
.slide .dot span {display:inline-block;padding: 6px;margin-left:4px;-moz-border-radius:50%; -webkit-border-radius:50%; border-radius:50%;background:#fff;cursor: pointer}
.slide .dot .cur {background:#34c751}

JS代码片段:

// 设置图片源
var imgData = ['http://ww1.sinaimg.cn/bmiddle/9e5389bbjw1ez7jiqwwi9j20dw0dw76i.jpg','http://ww3.sinaimg.cn/bmiddle/9e5389bbjw1ez7jirk5urj20dw0dwgnp.jpg','http://ww3.sinaimg.cn/bmiddle/9e5389bbjw1ez7jis72jcj20dw0dwmz9.jpg','http://ww4.sinaimg.cn/bmiddle/9e5389bbjw1ez7jist323j20dw0dwq4i.jpg','http://ww1.sinaimg.cn/bmiddle/9e5389bbjw1ez7jithb2gj20dw0dwjss.jpg','http://ww3.sinaimg.cn/bmiddle/9e5389bbjw1ez7jiu53trj20dw0dwdhq.jpg','http://ww2.sinaimg.cn/bmiddle/9e5389bbjw1ez7jixx545j20dw0dwn04.jpg','http://ww3.sinaimg.cn/bmiddle/9e5389bbjw1ez7jiymhv8j20dw0dw0vh.jpg','http://ww1.sinaimg.cn/bmiddle/9e5389bbjw1ez7jiza47wj20dw0dw40q.jpg'
];
var imgSize = imgData.length;
var slideObj = document.querySelector('.slide');
var slideUlObj = document.querySelector('.slide ul');
var dotObj = slideObj.querySelector('.dot');
dotObj.style.marginLeft = -8 * imgSize + 'px';for (var i = 0; i < imgSize; i++) {var liObj = document.createElement('li');var imgObj = document.createElement('img');var imgSrc = imgData[i];// 添加延迟加载图片机制if (i == 0) imgObj.src = imgSrc;else imgObj.dataset.src = imgSrc;liObj.appendChild(imgObj);slideUlObj.appendChild(liObj);var spanObj = document.createElement('span');if (i == 0) spanObj.className = 'cur';// 绑定圆圈点击事件spanObj.onclick = function() {var index = Array.prototype.indexOf.call(dotObj, this);swipeImg(index);};dotObj.appendChild(spanObj);
}var curIndex = 1;
var imgObj = slideObj.querySelectorAll('ul li');
var dotObj = slideObj.querySelectorAll('.dot span');var swipeImg = function(index) {index = index >= imgSize ? 0 : index < 0 ? imgSize - 1 : index;for (var i = 0; i < imgSize; i++) {dotObj[i].className = '';imgObj[i].className = '';}var curImgObj = imgObj[index];dotObj[index].className = 'cur';curImgObj.className = 'cur';var imgSubObj = curImgObj.querySelector('img');if (imgSubObj.dataset.src) {imgSubObj.src = imgSubObj.dataset.src;delete imgSubObj.dataset.src;}curIndex = index;
};setInterval(function() {swipeImg(curIndex);curIndex++;
}, 3000);var touchEvent = {// 判断设备是否支持touch事件touch: ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch,events: {slider: slideUlObj,handleEvent: function(event) {if (event.type == 'touchstart') {this.start(event);} else if(event.type == 'touchmove') {this.move(event);} else if(event.type == 'touchend') {this.end(event);}},start: function(event) {event.preventDefault();                      // 阻止触摸事件的默认动作,即阻止滚屏var touch = event.touches[0];                // touches数组对象获得屏幕上所有的touch,取第一个touchstartPos = {                                 // 取第一个touch的坐标值x: touch.pageX,y: touch.pageY,time: +new Date};this.slider.addEventListener('touchmove', this, false);this.slider.addEventListener('touchend', this, false);},move: function(event) {event.preventDefault();                      // 阻止触摸事件的默认行为,即阻止滚屏// 当屏幕有多个touch或者页面被缩放过,就不执行move操作if (event.touches.length > 1 || event.scale && event.scale !== 1) return;var touch = event.touches[0];endPos = {x: touch.pageX - startPos.x,y: touch.pageY - startPos.y};},// 滑动释放end: function(event) {var duration = +new Date - startPos.time;    // 滑动的持续时间if (Number(duration) > 100) {// 判断是左移还是右移,当偏移量大于50时执行if (endPos.x > 50) {swipeImg(curIndex - 1);} else if(endPos.x < -50) {swipeImg(curIndex + 1);}}// 解绑事件this.slider.removeEventListener('touchmove', this, false);this.slider.removeEventListener('touchend', this, false);}}
};if(!!touchEvent.touch) touchEvent.events.slider.addEventListener('touchstart', touchEvent.events, false);document.addEventListener('keydown', function(event) {switch (event.keyCode) {case 33:case 37:case 38:swipeImg(curIndex - 1);break;case 9:case 32:case 34:case 39:case 40:swipeImg(curIndex + 1);break;}event.preventDefault();
}, false);

更多相关:

在线预览: http://each.sinaapp.com/pictures/pure-js-gallery.html

Angular在线教程: http://each.sinaapp.com/angular

React在线教程: http://each.sinaapp.com/react

永久链接: http://qiaolevip.iteye.com/blog/2260615

预览文章: PhpStorm10最新版破解注册激活码(图文版)

永久链接: http://qiaolevip.iteye.com/blog/2260617

预览文章: IntelliJ IDEA15最新版破解注册激活码(图文版

永久链接: http://qiaolevip.iteye.com/blog/2260620

预览文章: CLion1.2最新版破解注册激活码(图文版)

永久链接: http://qiaolevip.iteye.com/blog/2260627

预览文章: RubyMine8最新版破解注册激活码(图文版

永久链接: http://qiaolevip.iteye.com/blog/2260628

预览文章: PyCharm5最新版破解注册激活码(图文版)

永久链接: http://qiaolevip.iteye.com/blog/2264038

预览文章: PyCharm5.0.2最新版破解注册激活码(图文版)

纯JS打造移动端触屏滑动图片集相关推荐

  1. JS 移动端触屏滑动

    首页> 程序开发 > web前端 > JavaScript > 正文 JS案例之5--移动端触屏滑动 2014-08-15     0个评论      收藏  我要投稿 移动端 ...

  2. js实现touch移动触屏滑动事件

    在开始描述touch事件之前,需要先描述一下多触式系统中特有的touch对象(android和iOS乃至nokia最新的meego系统都模拟了类 似的对象).这个对象封装一次屏幕触摸,一般来自于手指. ...

  3. 移动html触摸效果,JS实现移动端触屏拖拽功能

    2.css 3.js = maxW) { oLeft = maxW; } if(oTop < 0) { oTop = 0; } else if(oTop >= maxH) { oTop = ...

  4. html 手机端拖拽效果,JS实现移动端触屏拖拽功能

    1.html 2.css * { margin: 0; padding: 0; } html, body { width: 100%; height: 100%; } #div1 { width: 5 ...

  5. 移动端触屏滑动touches使用

    代码 var start = {x: 0,y: 0 } var end = {x: 0,y: 0 }document.addEventListener('touchstart', function ( ...

  6. JS移动客户端--触屏滑动事件 banner图效果

    JS移动客户端--触屏滑动事件 移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的t ...

  7. JS移动客户端--触屏滑动事件

    移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件.处理touch事件 ...

  8. python手机触屏代码_JS移动客户端--触屏滑动事件及js手机拖拽效果

    移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件.处理touch事件 ...

  9. 移动客户端触屏滑动事件

    手机移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件.处理touch ...

最新文章

  1. python子进程通信_python执行子进程实现进程间通信的方法
  2. 单点登录之SessionExpireFilter重置session有效期
  3. Android开发之Android Studio依赖aar包的四种方法(附加第三方库依赖方式)
  4. Web PostMessage
  5. git github配置
  6. ActionT 委托
  7. 企业管理系统原型、HRM、工作报告统计、0A、商机、合同、客户管理、产品管理、企业oa、行政办公系统、数据报表、销售分析、客户分析、产品管理、人力资源管理系统、crm、axure原型、rp源文件
  8. 让网络不再瘫痪 ARP病毒的解决措施
  9. 苹果id可以同时用两个手机吗_科技V报余承东:鸿蒙OS随时可用于手机;疑似魅族16s Pro通过3C认证20190809...
  10. 【java笔记】基本类型与字符串之间的转换
  11. 如何开启深度学习之旅?这三大类125篇论文为你导航(附资源下载)
  12. 数据挖掘 自习笔记 第三章 定性归纳实践(下)
  13. Linux下如何修改ini文件,如何修改Boot.ini文件,重新引导Linux!
  14. ember controller内调用save修改model数据时出现null的解决方案
  15. 从零开始学习SEO的基础概念
  16. redis的高级教程
  17. 人脸识别篇---人脸对齐
  18. python积木式编程_实例讲解python函数式编程
  19. 【Java】Java实现找图抓色
  20. 修改pdf文件内容可以使用什么编辑工具

热门文章

  1. C4D模型工具—镜像
  2. 震惊!这个链接里面竟然有
  3. 硝酸浓度对多孔氧化锌薄膜刻蚀工艺能的影响
  4. Mophie vs RavPower vs Belkin: 哪家无线充电板最强?丨Xtecher 评测
  5. Python学习:print函数的用法
  6. 矩阵论(二)——Jordan标准形
  7. java math tan_Java Math tan() 使用方法及示例
  8. 统一认证管理系统(单点登录系统)sso 浅谈
  9. k8s存储PV与PVC使用详解
  10. STM32CubeMX Crystal/Ceramic Resontor