JS库之Waypoints的用法详解

发布时间 - 2026-01-11 03:14:38    点击率:

一款用于捕获各种滚动事件的插件?Waypoints。同时Waypoints还支持固定元素和无限滚动的功能,功力十分强大。

一、最简易的使用

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>waypoints的最简单使用</title>
  <!-- 定义css样式 -->
  <style>
    *{
      padding: 0;
      margin: 0;
    }
    #example-basic{
      height: 500px;
      text-align: center;
    }
  </style>
  <!-- 引入js文件 -->
  <script src="js/jquery-3.0.0.min.js"></script>
  <script src="js/jquery.waypoints.js"></script>
  <script src="js/jquery-ui.min.js"></script>
  <!-- 启动waypoints -->
  <script>
  $(function () {
    $(‘#example-basic‘).waypoint(function() { 
      console.log("hi,example-basic,你的顶部碰到了浏览器窗口的顶部!");//测试打开web调试器,看控制台信息
    });
  });
  //注:无论是鼠标向上或向下只要该元素的顶部碰到浏览器的顶部都会触发waypoints事件
  </script>
</head>
<body>
  <div style="background:#ccc;height:1800px;">one div</div>
  <div id="example-basic">example-basic.</div>
  <div style="background:#ccc;height:1800px;">one div</div>
</html>

二、能检测鼠标滚动方向的基本应用

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>检测鼠标滚动方向</title>
  <style>
    *{
      padding: 0;
      margin: 0;
    }
    #example-basic{
      height: 500px;
      text-align: center;
    }
    .in{
      font-size: 36px;
      color: #ff0;
      background:red;
      transition:all 0.5s;
    }
  </style>
  <script src="js/jquery-3.0.0.min.js"></script>
  <script src="js/jquery.waypoints.js"></script>
  <script src="js/jquery-ui.min.js"></script>
  <script>
  $(function () {
    $(‘#example-basic‘).waypoint(
      function(direction){ 
        if(direction=="down"){
          $(‘#example-basic‘).addClass("in");
          $(‘#example-basic‘).html("你在向下滚动!")
        }else{
          $(‘#example-basic‘).removeClass("in");
          $(‘#example-basic‘).html("你在向上滚动!")
        }
      },//第1个参数为waypoints事件响应时所执行的代码,是一个匿名函数即可
      {
        offset:‘50%‘
      }//第2个参数为偏移量,本例即该div到窗口高度一半时触发
      );
  });
  </script>
</head>
<body>
  <div style="background:#ccc;height:1800px;">one div</div>
  <div id="example-basic">example-basic.</div>
  <div style="background:#ccc;height:1800px;">one div</div>
</html>

三、鼠标滚动加动画效果的应用

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>加下动画效果的</title>
  <style>
    *{
      padding: 0;
      margin: 0;
    }
    div{
      background: #eee;
    }
    .banner{
      width: 1100px;
      margin: 0 auto;
    }
    .title{
      height: 100px;
      background: #9f9;
    }
    .lt{
      position: relative;
      height: 400px;
      border:1px dotted #999;
    }
    .lt_left{
      position: absolute;
      width: 500px;
      height: 300px;
      left: -20%;
      top: 0;
      margin-left: -550px;
      background: #f99;
    }
    .lt_right{
      position: absolute;
      width: 500px;
      height: 300px;
      left: 120%;
      top: 0;
      margin-left: 50px;
      background: #99f;
    }
  </style>
  <script src="js/jquery-3.0.0.min.js"></script>
  <script src="js/jquery.waypoints.js"></script>
  <script src="js/jquery-ui.min.js"></script>
  <script>
  $(function () {
    //获取运动的盒子
    var boxElemets = $(‘.boxaction‘);
    $.each(boxElemets, function() {
      $(this).attr(‘init‘, ‘false‘);
    }); 
    //判断是否出现在浏览器界面里面!
    function isScrolledIntoView(elem) { 
      var docViewTop = $(window).scrollTop();
      var docViewBottom = docViewTop + $(window).height();
      var elemTop = $(elem).offset().top;
      if (elemTop + 50 < docViewBottom) {
        return true
      } else {
        return false
      }
    }
    //定义动画
    function animateInit() {
      $.each(boxElemets, function() {
        if ($(this).attr(‘init‘) == ‘false‘ && isScrolledIntoView($(this))) { //没有显示过且刚出现在浏览器界面
          $(this).attr(‘init‘, ‘true‘);
          $(this).animate({
            ‘left‘: ‘50%‘
          }, 1000, ‘easeOutCubic‘);
        }
      });
    }
    animateInit(); //先执行一次animateInit
    $(window).scroll(function() { //滑动执行animateInit
      animateInit();
    });
  })
  </script>
</head>
<body>
  <div style="background:#ccc;height:1800px;text-align:center;">top div</div>
  <div class="banner">
    <div class="title">这是标题</div>
    <div class="lt">
      <div class="lt_left boxaction">这是左边盒子</div>
      <div class="lt_right boxaction">这是右边盒子</div>
    </div>
  </div>
</body>
</html>

总结

以上所述是小编给大家介绍的JS库之Waypoints的用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# waypoints  # 的用法  # waypoints.js  # JS库particles.js创建超炫背景粒子插件(附源码下载)  # JS库之Three.js 简易入门教程(详解之一)  # JS库中的Particles.js在vue上的运用案例分析  # JS库之Particles.js中文开发手册及参数详解  # JS库之ParticlesJS使用简介  # 鼠标  # 这是  # 出现在  # 你在  # 小编  # 是一个  # 在此  # 给大家  # 最简单  # 所述  # 给我留言  # 感谢大家  # 本例  # 判断是否  # 疑问请  # 有任何  # 调试器  # 偏移量  # 半时  # px 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何在腾讯云服务器快速搭建个人网站?  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel怎么使用Intervention Image库处理图片上传和缩放  如何用好域名打造高点击率的自主建站?  北京网站制作的公司有哪些,北京白云观官方网站?  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  如何在不使用负向后查找的情况下匹配特定条件前的换行符  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  微信推文制作网站有哪些,怎么做微信推文,急?  javascript基于原型链的继承及call和apply函数用法分析  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何用PHP快速搭建高效网站?分步指南  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  如何快速生成专业多端适配建站电话?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何正确选择百度移动适配建站域名?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  C++时间戳转换成日期时间的步骤和示例代码  简历在线制作网站免费版,如何创建个人简历?  EditPlus中的正则表达式 实战(1)  iOS正则表达式验证手机号、邮箱、身份证号等  如何为不同团队 ID 动态生成多个非值班状态按钮  Laravel如何使用Blade组件和插槽?(Component代码示例)  如何用景安虚拟主机手机版绑定域名建站?  高防服务器租用如何选择配置与防御等级?  phpredis提高消息队列的实时性方法(推荐)  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  Java类加载基本过程详细介绍  如何在建站之星网店版论坛获取技术支持?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  如何快速搭建FTP站点实现文件共享?  如何快速查询网址的建站时间与历史轨迹?  Android自定义listview布局实现上拉加载下拉刷新功能  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  如何确保西部建站助手FTP传输的安全性?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】