Authored by 梁志锋

use requestAnimationFrame for window scroll event

@@ -133,7 +133,7 @@ function search() { @@ -133,7 +133,7 @@ function search() {
133 }); 133 });
134 } 134 }
135 135
136 -$('.maybe-like p').on('touchstart', function (e) { 136 +$('.maybe-like p').on('touchstart', function(e) {
137 search(); 137 search();
138 }); 138 });
139 139
@@ -68,28 +68,33 @@ $channelLink.on('touchstart', function() { @@ -68,28 +68,33 @@ $channelLink.on('touchstart', function() {
68 borderColor: '#fff' 68 borderColor: '#fff'
69 }); 69 });
70 }); 70 });
71 -var updateLayerPosition = (function() {  
72 - var init = false;  
73 - return function() {  
74 - var winHeight = window.innerHeight;  
75 - var bodyHeight = $doc.height();  
76 - var scrollTopPosition = $win.scrollTop();  
77 - var layerHeight = $appFloatLayer.height();  
78 - var layerPaddingTop = parseInt($appFloatLayer.css('padding-top'));  
79 - var layerPaddingBottom = parseInt($appFloatLayer.css('padding-bottom'));  
80 - var newPosition;  
81 - if(init){  
82 - newPosition = bodyHeight - winHeight- scrollTopPosition;  
83 - }else{  
84 - init = true;  
85 - newPosition = bodyHeight - winHeight - scrollTopPosition + layerHeight + layerPaddingTop + layerPaddingBottom;  
86 - }  
87 - $appFloatLayer.css({  
88 - 'position': 'relative',  
89 - 'bottom': newPosition + 'px'  
90 - });  
91 - };  
92 -})(); 71 +
  72 +function updateLayerPosition() {
  73 + var init = false;
  74 +
  75 + return function() {
  76 + var winHeight = window.innerHeight;
  77 + var bodyHeight = $doc.height();
  78 + var scrollTopPosition = $win.scrollTop();
  79 + var layerHeight = $appFloatLayer.height();
  80 + var layerPaddingTop = parseInt($appFloatLayer.css('padding-top'));
  81 + var layerPaddingBottom = parseInt($appFloatLayer.css('padding-bottom'));
  82 + var newPosition;
  83 +
  84 + if (init) {
  85 + newPosition = bodyHeight - winHeight - scrollTopPosition;
  86 + } else {
  87 + init = true;
  88 + newPosition = bodyHeight - winHeight - scrollTopPosition +
  89 + layerHeight + layerPaddingTop + layerPaddingBottom;
  90 + }
  91 +
  92 + $appFloatLayer.css({
  93 + position: 'relative',
  94 + bottom: newPosition + 'px'
  95 + });
  96 + };
  97 +}
93 98
94 $(window).scroll(function() { 99 $(window).scroll(function() {
95 window.requestAnimationFrame(updateLayerPosition); 100 window.requestAnimationFrame(updateLayerPosition);
@@ -347,7 +347,6 @@ $listNav.on('touchend touchcancel', function(e) { @@ -347,7 +347,6 @@ $listNav.on('touchend touchcancel', function(e) {
347 search(); 347 search();
348 } 348 }
349 } 349 }
350 -  
351 e.stopPropagation(); 350 e.stopPropagation();
352 }); 351 });
353 352
@@ -72,7 +72,7 @@ $(window).scroll(function() { @@ -72,7 +72,7 @@ $(window).scroll(function() {
72 72
73 hotrank(page, sort, id, notab); 73 hotrank(page, sort, id, notab);
74 hotnav = new Hammer(document.getElementById('hotRank')); 74 hotnav = new Hammer(document.getElementById('hotRank'));
75 -hotnav.on('tap', function (e) { 75 +hotnav.on('tap', function(e) {
76 var ev = ev || window.event; 76 var ev = ev || window.event;
77 var target = ev.target || ev.srcElement; 77 var target = ev.target || ev.srcElement;
78 78