JS库之Waypoints的用法详解


Posted in Javascript onSeptember 13, 2017

一款用于捕获各种滚动事件的插件?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的用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery数据显示插件整合实现代码
Oct 24 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
arguments对象验证函数的参数是否合法
Jun 26 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
Dec 31 Javascript
详解Jquery的事件操作和文档操作
Dec 19 Javascript
js实现消息滚动效果
Jan 18 Javascript
详解jquery插件jquery.viewport.js学习使用方法
Sep 08 jQuery
基于jQuery实现定位导航位置效果
Nov 15 jQuery
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
Mar 15 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
Jul 25 Javascript
js与jquery获取input输入框中的值实例讲解
Feb 27 jQuery
WebPack工具运行原理及入门教程
Dec 02 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
Sep 13 #Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
Sep 13 #Javascript
基于vue的短信验证码倒计时demo
Sep 13 #Javascript
BootStrap数据表格实例代码
Sep 13 #Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 #Javascript
Angular CLI 安装和使用教程
Sep 13 #Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 #Javascript
You might like
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
PHP把小数转成整数3种方法
2014/06/30 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
jQuery对val和atrr(&quot;value&quot;)赋值的区别介绍
2014/09/26 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
2017/05/25 jQuery
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
韩国邮政旗下生鲜食品网上超市:epost
2016/08/27 全球购物
电大自我鉴定范文
2013/10/01 职场文书
函授毕业生的自我鉴定
2013/11/26 职场文书
大学生职业生涯规划范文
2014/01/08 职场文书
差生评语大全
2014/05/04 职场文书
主要领导对照检查材料
2014/08/26 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP