javascript实现滚轮轮播图片


Posted in Javascript onDecember 13, 2020

本文实例为大家分享了javascript实现滚轮轮播图片的具体代码,供大家参考,具体内容如下

效果图如下,只能用滚轮移动到头部和尾部

javascript实现滚轮轮播图片

思路:

根据需要展示的图片数量(view-count)与slide-container中存放的图片数量设置ul的长度,然后设置每个li的均等宽度。

每次滚轮滚动ul移动一个li的距离

HTML:

<div class="slide-container" view-count="4">
 <ul>
 <li>
  <img src="images/women/15444293310974910.jpg" alt=""/>
 </li>
 <li>
  <img src="images/women/15444293312083674.jpg" alt=""/>
 </li>
 <li>
  <img src="images/women/15444293313734437.jpg" alt=""/>
 </li>
 <li>
  <img src="images/women/15444293315979953.jpg" alt=""/>
 </li>
 <li>
  <img src="images/women/15444293316955485.jpg" alt=""/>
 </li>
 <li>
  <img src="images/women/15444293317767707.jpg" alt=""/>
 </li>
 </ul>
</div>

CSS:

.slide-container {
  max-width: 1230px;
  margin: auto;
  overflow: hidden;
 }
 
 .slide-container ul {
  transition: all 0.5s linear;
 }
 
 .slide-container li {
  float: left;
 }
 
 .slide-container img {
  width: 100%;
 }

JS:

(function () {
 
 let slider = $('.slide-container'),
  li = slider.find('li'),
  length = li.length,
  curImgIndex = 0; //当前图片索引
 
 //设置ul宽度和li的宽度
 function initSlider() {
  slider.find('ul').css({
  'width': length / slider.attr('view-count') * 100 + '%'
  });
  li.css({
  'width': 'calc(' + 100 / length + '% - 10px)',
  'margin': '0 5px'
  });
 }
 
 //统一处理滚轮滚动事件
 function wheel(event) {
  var delta = 0;
  if (!event) event = window.event;
  if (event.wheelDelta) { //IE、chrome浏览器使用的是wheelDelta,并且值为“正负120”
  delta = event.wheelDelta / 120;
  if (window.opera)
 
  //因为IE、chrome等向下滚动是负值,FF是正值,为了处理一致性,在此取反处理
   delta = -delta;
  } else if (event.detail) { //FF浏览器使用的是detail,其值为“正负3”
  delta = -event.detail / 3;
  }
  if (delta) {
  handle(delta);
 
  //阻止事件冒泡重复执行和屏幕向下滚动
  event.preventDefault() && event.stopPropagation();
  }
 
 }
 
 //上下滚动时的具体处理函数
 function handle(delta) {
 
  //滚轮向上滚动
  if (delta < 0) {
  curImgIndex++;
  } else if (delta > 0) { //向下滚动
  curImgIndex--;
  }
  move();
 }
 
 function move() {
 
  //到达两端则不移动
  if (curImgIndex > li.length - slider.attr('view-count') || curImgIndex < 0){
  if(curImgIndex > 0 ){
   curImgIndex--;
  }else{
   curImgIndex++;
  }
  return false;
  }
  slider.find('ul').css({
  'transform': 'translateX( -' + 100 / length * curImgIndex + '% )'
  })
 }
 
 initSlider();
 
 //绑定滚轮事件兼容性写法
 if (window.addEventListener)
  slider.get(0).addEventListener('DOMMouseScroll', wheel, false);
 slider.get(0).onmousewheel = wheel;
}());

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
完美解决JS中汉字显示乱码问题(已解决)
Dec 27 Javascript
利用javascript的面向对象的特性实现限制试用期
Aug 04 Javascript
js获取select选中的option的text示例代码
Dec 19 Javascript
jQuery实现多级联动下拉列表查询框
Jan 18 Javascript
JS获取多维数组中相同键的值实现方法示例
Jan 06 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
Feb 06 Javascript
JS字符串按逗号和回车分隔的方法
Apr 25 Javascript
简单实现js轮播图效果
Jul 14 Javascript
原生js实现省市区三级联动代码分享
Feb 12 Javascript
vuex实现的简单购物车功能示例
Feb 13 Javascript
解决vue单页面修改样式无法覆盖问题
Aug 05 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
Mar 14 Javascript
swiper实现导航滚动效果
Dec 13 #Javascript
swiperjs实现导航与tab页的联动
Dec 13 #Javascript
Vue实现简单购物车功能
Dec 13 #Vue.js
javascript前端实现多视频上传
Dec 13 #Javascript
vue使用element-ui实现表单验证
Dec 13 #Vue.js
vue+element实现动态加载表单
Dec 13 #Vue.js
js实现滚动条自动滚动
Dec 13 #Javascript
You might like
木翼下载系统中说明的PHP安全配置方法
2007/06/16 PHP
php数据库抽象层 PDO
2011/05/07 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
python查询sqlite数据表的方法
2015/05/08 Python
Python OS模块常用函数说明
2015/05/23 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
python使用建议与技巧分享(二)
2020/08/17 Python
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
大专生的学习自我评价
2013/12/04 职场文书
单位工作证明
2014/10/07 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
走进科学观后感
2015/06/18 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
JavaScript执行机制详细介绍
2021/12/06 Javascript
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB