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 相关文章推荐
JavaScript 浏览器验证代码(来自discuz)
Jul 17 Javascript
JS操作JSON要领详细总结
Aug 25 Javascript
Javascript 浮点运算的问题分析与解决方法
Aug 27 Javascript
JS应用正则表达式转换大小写示例
Sep 18 Javascript
JavaScript函数详解
Nov 17 Javascript
jQuery中closest和parents的区别分析
May 07 Javascript
js实现图片360度旋转
Jan 22 Javascript
ES6中class类用法实例浅析
Apr 06 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
Sep 19 Javascript
iconfont的三种使用方式详解
Aug 05 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
Apr 07 Javascript
vue中的使用token的方法示例
Mar 10 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 不同编码下的字符串长度区分
2009/09/26 PHP
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
PHP错误机制知识汇总
2016/03/24 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
2014年上半年工作自我评价
2014/01/18 职场文书
2014年大班元旦活动方案
2014/02/26 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
导游词之无锡古运河
2019/11/14 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
Python re.sub 反向引用的实现
2021/07/07 Python
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL