使用原生JS实现滚轮翻页效果的示例代码

 更新时间:2020年05月31日 11:51:08   作者:MiraclePx  
这篇文章主要介绍了使用原生JS实现滚轮翻页效果的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、滚轮事件

当用户通过鼠标滚轮与页面交互、在垂直方向上滚动页面时,就会触发mousewheel事件,这个事件就是实现全屏切换效果需要用到的。在IE6, IE7, IE8, Opera 10+, Safari 5+中,都提供了 “mousewheel” 事件,而 Firefox 3.5+ 中提供了一个等同的事件:”DOMMouseScroll”。与mousewheel事件对应的event对象中我们还会用到另一个特殊属性—wheelDelta属性。

1、“mousewheel” 事件中的 “event.wheelDelta” 属性值:返回的值,如果是正值说明滚轮是向上滚动,如果是负值说明滚轮是向下滚动;返回的值,均为 120 的倍数,即:幅度大小 = 返回的值 / 120。

2、“DOMMouseScroll” 事件中的 “event.detail” 属性值:返回的值,如果是负值说明滚轮是向上滚动(与 “event.wheelDelta” 正好相反),如果是正值说明滚轮是向下滚动;返回的值,均为 3 的倍数,即:幅度大小 = 返回的值 / 3。

二、实现效果

 

三、源代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    body {
      overflow: hidden;
    }
    .container {
      transition: .5s;
    }
    .item {
      width: 100vw;
      height: 100vh;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="item" style="background-color: rgb(255,255,0)"></div>
    <div class="item" style="background-color: rgb(255, 145, 0)"></div>
    <div class="item" style="background-color: rgb(0, 17, 255)"></div>
    <div class="item" style="background-color: rgb(0, 255, 136)"></div>
  </div>
  <script src="sun.js"></script>
  <script src='https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js'></script>
  <script>
    $(() => {
      let i = 0;
      let move = sun.throttle(e => {
        if(e.wheelDelta < 0) {
          if( i === $(".item").length - 1) return ;
          i++;
        } else {
          if( i === 0) return;
          i--;
        }
        $(".container").css("transform",`translateY(-${i*100}vh)`);
      },500);
      window.onmousewheel = move;
    })
  </script>
</body>
</html>

其中用到了节流函数 throttle() ,函数代码如下:

 function throttle(fn,wait) {
    let endTime = 0;
    return function() {
      if(new Date() - endTime < wait) return;
      fn.apply(this,arguments);
      endTime = new Date();
    }
  },

到此这篇关于使用原生JS实现滚轮翻页效果的示例代码的文章就介绍到这了,更多相关JS滚轮翻页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript中Array.from()的超全用法详解

    JavaScript中Array.from()的超全用法详解

    Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map),别忘记就来讲讲他的具体用法吧
    2023-03-03
  • JS获取页面input控件中所有text控件并追加样式属性

    JS获取页面input控件中所有text控件并追加样式属性

    使用jquery来在页面加载时获取页面input控件中所有text控件并添加样式,由于其他方式比较麻烦所以就想通过在页面加载的时候将要改动的text找到并添加属性,感兴趣的你可以参考下,希望可以帮助到你
    2013-02-02
  • 使用js实现的简单拖拽效果

    使用js实现的简单拖拽效果

    本文给大家分享的是使用纯JS实现的简单的拖拽效果的插件,算是对自己javascript学习的一个小的检验,如果小伙伴们需要复杂的拖拽效果,还是考虑jQuery的draggable吧,更成熟一些。
    2015-03-03
  • JavaScript字符串对象

    JavaScript字符串对象

    这篇文章主要为大家详细介绍了JavaScript字符串对象,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 原生js实现瀑布流布局

    原生js实现瀑布流布局

    这篇文章主要为大家详细介绍了原生js实现瀑布流布局的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • JS实现浏览器菜单命令

    JS实现浏览器菜单命令

    JS实现浏览器菜单命令...
    2006-09-09
  • javascript中定义变量const和var有什么区别详解

    javascript中定义变量const和var有什么区别详解

    这篇文章主要给大家介绍了关于javascript中定义变量const和var有什么区别的相关资料,在JavaScript中var和const都是用于声明变量的关键字,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • JS实现淡入淡出图片效果的方法分析

    JS实现淡入淡出图片效果的方法分析

    这篇文章主要介绍了JS实现淡入淡出图片效果的方法,结合实例形式分析了js鼠标响应实现图片淡入淡出效果的原理与相关实现技巧,需要的朋友可以参考下
    2016-12-12
  • JavaScript 动态加载脚本和样式的方法

    JavaScript 动态加载脚本和样式的方法

    这篇文章主要介绍了JavaScript 动态加载脚本和样式的方法,需要的朋友可以参考下
    2015-04-04
  • 通过js把一个数组修改成多层嵌套多个数组的几种方法总结

    通过js把一个数组修改成多层嵌套多个数组的几种方法总结

    这篇文章主要介绍了通过js把一个数组修改成多层嵌套多个数组的几种方法总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论