diff --git a/src/directives/scroll-fire.js b/src/directives/scroll-fire.js
index <HASH>..<HASH> 100644
--- a/src/directives/scroll-fire.js
+++ b/src/directives/scroll-fire.js
@@ -24,19 +24,18 @@ export default {
   bind (el, binding) {
     let ctx = {
       scroll: debounce(() => {
-        let containerBottom, elementBottom, fire
+        let containerBottom, elBottom
 
         if (ctx.scrollTarget === window) {
-          elementBottom = el.getBoundingClientRect().bottom
-          fire = elementBottom < window.innerHeight
+          elBottom = el.getBoundingClientRect().bottom
+          containerBottom = window.innerHeight
         }
         else {
+          elBottom = offset(el).top + height(el)
           containerBottom = offset(ctx.scrollTarget).top + height(ctx.scrollTarget)
-          elementBottom = offset(el).top + height(el)
-          fire = elementBottom < containerBottom
         }
 
-        if (fire) {
+        if (elBottom > 0 && elBottom < containerBottom) {
           ctx.scrollTarget.removeEventListener('scroll', ctx.scroll, listenOpts.passive)
           ctx.handler(el)
         }
fix: v-scroll-fire get fired when reload the page #<I>