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 相关文章推荐
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
May 07 Javascript
JavaScript 的方法重载效果
Aug 07 Javascript
js 自定义的联动下拉框
Feb 07 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
Oct 14 Javascript
模拟select的代码
Oct 19 Javascript
5秒后跳转到另一个页面的js代码
Oct 12 Javascript
js实现宇宙星空背景效果的方法
Mar 03 Javascript
JS获取年月日时分秒的方法分析
Nov 28 Javascript
Vue.js实现实例搜索应用功能详细代码
Aug 24 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
Jan 27 Javascript
vue3.0搭配.net core实现文件上传组件
Oct 29 Javascript
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
jquery select下拉框操作的一些说明
2010/04/02 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
flexigrid 参数说明
2010/11/23 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
2019/11/20 Javascript
用实例解释Python中的继承和多态的概念
2015/04/27 Python
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
Pytest如何使用skip跳过执行测试
2020/08/13 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
东方电视购物:东方CJ
2016/10/12 全球购物
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
儿子婚宴答谢词
2014/01/09 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
农民工创业典型事迹
2014/01/25 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书