JAVASCRIPT   53

scroll-snap.js

Guest on 15th August 2021 07:21:00 AM

  1.  
  2. angular
  3. .module('fonderieComponent')
  4. .directive('scrollSnap', [  function() {
  5.  
  6.   return {
  7.     restrict: 'AC',
  8.     scope : {
  9.  
  10.       "from" : "@",
  11.       "to" : "@"
  12.     },
  13.  
  14.     link: function ($scope, $element, $attr) {
  15.  
  16.      
  17.  
  18.       window.document.addEventListener("touchmove", function(e){
  19.  
  20.  
  21.         e.preventDefault();
  22.  
  23.  
  24.  
  25.       });
  26.  
  27.  
  28.  
  29.       window.document.addEventListener("scroll", function (e) {
  30.  
  31.  
  32.         if(window.innerWidth > 800) {
  33.  
  34.           return;
  35.         }
  36.  
  37.  
  38.         if($scope.from == undefined) {
  39.  
  40.           return;
  41.  
  42.         }
  43.  
  44.         if($scope.to == undefined) {
  45.  
  46.           return;
  47.  
  48.         }
  49.  
  50.         $scope.from = Number($scope.from);
  51.         $scope.to = Number($scope.to);
  52.  
  53.         //console.log($scope.from);
  54.  
  55.  
  56.         if($scope.from < window.scrollY  && $scope.to > window.scrollY) {
  57.  
  58.           $element[0].style.position = "fixed";
  59.           $element[0].style.zIndex = "1000000";
  60.           $element[0].style.top = "0px";
  61.  
  62.         } else {
  63.  
  64.           $element[0].removeAttribute("style");
  65.  
  66.      
  67.  
  68.         }
  69.  
  70.  
  71.       });
  72.  
  73.  
  74.  
  75.  
  76.       $scope.$watch("from", function() {
  77.  
  78.         if($scope.from != undefined) {
  79.  
  80.           console.log($scope.from);
  81.  
  82.         }
  83.  
  84.       });
  85.  
  86.       $scope.$watch("to", function () {
  87.  
  88.         if($scope.to != undefined) {
  89.  
  90.           console.log($scope.to);
  91.  
  92.         }
  93.  
  94.       });
  95.  
  96.     }
  97.  
  98.   }
  99. }]);

Raw Paste


Login or Register to edit or fork this paste. It's free.