JS库之Waypoints的用法详解

 更新时间:2017年09月13日 16:35:10   投稿:mrr  
waypoints的功能非常强大,一款用于捕获各种滚动事件的插件,下面跟随脚本之家小编一起学习JS库之Waypoints的用法吧

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

相关文章

  • webapi根据id获取元素的实现思路

    webapi根据id获取元素的实现思路

    掌握document.getElementById() 根据id获取元素,在页面画出一个宽200 高200 粉色的盒子, 在控制台打印这个盒子,接到这样的需求如何处理呢,下面小编给大家分享webapi根据id获取元素的实现思路,感兴趣的朋友一起看看吧
    2024-02-02
  • JavaScript设置表单上传时文件个数的方法

    JavaScript设置表单上传时文件个数的方法

    这篇文章主要介绍了JavaScript设置表单上传时文件个数的方法,可实现动态增加及删除表单上传按钮的功能,非常简单实用,需要的朋友可以参考下
    2015-08-08
  • JavaScript中的逻辑判断符&&、||与!介绍

    JavaScript中的逻辑判断符&&、||与!介绍

    这篇文章主要介绍了JavaScript中的逻辑判断符&&、||与!介绍,本文讲解了逻辑与&&的处理规则、逻辑或||的处理规则、!操作符,需要的朋友可以参考下
    2014-12-12
  • JS实现title标题栏文字不间断滚动显示效果

    JS实现title标题栏文字不间断滚动显示效果

    这篇文章主要介绍了JS实现title标题栏文字不间断滚动显示效果,通过javascript时间函数定时操作动态修改页面元素实现滚动效果,需要的朋友可以参考下
    2016-09-09
  • 详解JavaScript中Canvas的高级绘图和动画技术

    详解JavaScript中Canvas的高级绘图和动画技术

    JavaScript中的Canvas 是一个强大的 HTML5 元素,允许你通过编程方式创建图形、绘制图像和实现复杂的动画效果,在本文中,我们将深入探讨 JavaScript Canvas 的高级绘图和动画技术,并提供一个复杂的案例,以展示其潜力,需要的朋友可以参考下
    2023-10-10
  • JavaScript如何判断对象有某属性

    JavaScript如何判断对象有某属性

    这篇文章主要介绍了JavaScript如何判断对象有某属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • JS+CSS实现的日本门户网站经典选项卡导航效果

    JS+CSS实现的日本门户网站经典选项卡导航效果

    这篇文章主要介绍了JS+CSS实现的日本门户网站经典选项卡导航效果,涉及JavaScript针对页面元素的动态遍历及样式动态修改技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • javascript replace()正则替换实现代码

    javascript replace()正则替换实现代码

    javascript-replace()基础,一次完成将"<,>"替换"&lt;&gt;"实例
    2010-02-02
  • JavaScript之DOM_动力节点Java学院整理

    JavaScript之DOM_动力节点Java学院整理

    由于HTML文档被浏览器解析后就是一棵DOM树,要改变HTML的结构,就需要通过JavaScript来操作DOM。始终记住DOM是一个树形结构。
    2017-07-07
  • JS 实现可停顿的垂直滚动实例代码

    JS 实现可停顿的垂直滚动实例代码

    下面小编就为大家带来一篇JS 实现可停顿的垂直滚动实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11

最新评论