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 相关文章推荐
xtree.js 代码
Mar 13 Javascript
jQuery Ajax请求状态管理器打包
May 03 Javascript
jquery mobile changepage的三种传参方法介绍
Sep 13 Javascript
JSONP之我见
Mar 24 Javascript
在React框架中实现一些AngularJS中ng指令的例子
Mar 06 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 Javascript
开发Vue树形组件的示例代码
Dec 21 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
Mar 07 Javascript
VUE-cli3使用 svg-sprite-loader
Oct 20 Javascript
详解js加减乘除精确计算
Mar 19 Javascript
vue实现简单瀑布流布局
May 28 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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
PHP写MySQL数据 实现代码
2009/06/15 PHP
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
js 文件引入实现代码
2010/04/23 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
js arguments对象应用介绍
2012/11/28 Javascript
javascript的push使用指南
2014/12/05 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
python之Socket网络编程详解
2016/09/29 Python
用Python设计一个经典小游戏
2017/05/15 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
对python Tkinter Text的用法详解
2018/10/11 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
假日旅行社实习自我鉴定
2013/09/24 职场文书
班级道德讲堂实施方案
2014/02/24 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
车辆委托书范本
2014/10/05 职场文书
三严三实学习心得体会
2014/10/13 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
基于Python实现将列表数据生成折线图
2022/03/23 Python