码迷,mamicode.com
首页 > 其他好文 > 详细

angular浏览器滚动条滚动到指定element 触发事件

时间:2017-03-15 14:27:22      阅读:948      评论:0      收藏:0      [点我收藏+]

标签:out   des   window   direct   nts   lin   ict   timeout   delay   

angular.module(‘app‘).directive(‘ScrollTrigger‘, () => {
    return {
      restrict: "A",
      link:function ($scope,$element,$attrs,$controller) {
        function debounce(fn, delay) {
          let timer = null;
          return function () {
            let context = this;
            let args = arguments;
            clearTimeout(timer);
            timer = setTimeout(function () {
              fn.apply(context, args);
            }, delay);
          }
        }
        let trigger=debounce(() => {
          if ($element.is(":hidden")) {
            return;
          }
          if (($(window).scrollTop() + $(window).height()) > ($element.offset().top + 5)) {
            if (!$scope.$eval($attrs.zScrollTrigger)) {
              $element.trigger("click");
            }
          }
        }, 100);
        $(window).scroll(trigger);
        $scope.$on("destroy",()=>{
          $(window).unbind("scroll",trigger);
        })
      }
    }
  })

 

angular浏览器滚动条滚动到指定element 触发事件

标签:out   des   window   direct   nts   lin   ict   timeout   delay   

原文地址:http://www.cnblogs.com/Zoes/p/6553798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!