javascript实现滚轮轮播图片

 更新时间:2020年12月13日 15:16:27   作者:ggggmlor  
这篇文章主要为大家详细介绍了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;
}());

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

相关文章

  • 彻底搞懂JS无缝滚动代码

    彻底搞懂JS无缝滚动代码

    彻底搞懂JS无缝滚动代码...
    2007-01-01
  • 在页面中引入js的两种方法(推荐)

    在页面中引入js的两种方法(推荐)

    下面小编就为大家带来一篇在页面中引入js的两种方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • javascript 删除数组中重复项(uniq)

    javascript 删除数组中重复项(uniq)

    巧妙去除数组中的重复项的方法参考,需要的朋友可以参考下。
    2010-01-01
  • JavaScript函数封装的示例详解

    JavaScript函数封装的示例详解

    这篇文章主要通过动画的示例来为大家详细介绍一下JavaScript的函数封装,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2022-03-03
  • JavaScript实现将网页加入收藏夹功能

    JavaScript实现将网页加入收藏夹功能

    浏览器出于安全和隐私的考虑,限制了用代码将网页加入浏览器的收藏夹,本文主要介绍了如何使用通过一些间接的方法实现这一功能,有需要的可以参考下
    2024-10-10
  • 关于Object.entries()方法的使用和实现方式

    关于Object.entries()方法的使用和实现方式

    这篇文章主要介绍了关于Object.entries()方法的使用和实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • TypeScript与JavaScript项目里引入MD5校验和

    TypeScript与JavaScript项目里引入MD5校验和

    这篇文章主要介绍了TypeScript与JavaScript项目里引入MD5校验和,MD5校验和可以用于验证网络文件传输的完整性以及防止文件被人篡改。下文我们就一起来学习TypeScript与JavaScript项目里引入MD5校验和_MD5校验,需要的朋友可以参考一下
    2022-02-02
  • JS模拟的腾讯微博app撕纸效果的实例代码

    JS模拟的腾讯微博app撕纸效果的实例代码

    本来想用css3来实现,但后来脑袋一热就用了js,省的别人你ie怎么没效果啊!在腾讯微博app上看到的一个效果,鼠标击哪里就撕了哪里,跟撕报纸似的,任意点击左边面的灰色区域,查看效果,当时觉得很有意思,问了下高人,突然觉悟了,原来如此。。
    2013-05-05
  • JS函数进阶之prototy用法实例分析

    JS函数进阶之prototy用法实例分析

    这篇文章主要介绍了JS函数进阶之prototy用法,结合实例形式分析了JavaScript函数中使用prototy扩展属性相关操作技巧,需要的朋友可以参考下
    2020-01-01
  • JS关于 replace 取值、替换第几个匹配项问题小结

    JS关于 replace 取值、替换第几个匹配项问题小结

    这篇文章主要介绍了JS关于replace取值、替换第几个匹配项,本文针对字符串的替换、截取知识点做详细介绍,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05

最新评论