 
         verticalTranslation = updatedOffset
 
-        header?.layer.sublayerTransform = CATransform3DMakeAffineTransform(CGAffineTransformMakeTranslation(0, verticalTranslation))
-        footer?.layer.sublayerTransform = CATransform3DMakeAffineTransform(CGAffineTransformMakeTranslation(0, -verticalTranslation))
+        if (fabs(updatedOffset) > 0 && fabs(updatedOffset) < UIConstants.ToolbarHeight) {
+            // this stops parallax effect where the scrolling rate is doubled while hiding/showing toolbars
+            scrollView?.contentOffset = CGPoint(x: contentOffset.x, y: contentOffset.y - delta)
+        }
+
+        header?.layer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMakeTranslation(0, verticalTranslation))
+        footer?.layer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMakeTranslation(0, -verticalTranslation))
 
         let webViewVertTranslation = toolbarsShowing ? verticalTranslation : verticalTranslation - UIConstants.ToolbarHeight
         let webView = getApp().browserViewController.webViewContainer
-        webView.layer.sublayerTransform = CATransform3DMakeAffineTransform(CGAffineTransformMakeTranslation(0, webViewVertTranslation))
+        webView.layer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMakeTranslation(0, webViewVertTranslation))
 
         var alpha = 1 - abs(verticalTranslation / UIConstants.ToolbarHeight)
         if (!toolbarsShowing) {

        }
        
        verticalTranslation = 0
        header?.layer.sublayerTransform = CATransform3DIdentity
        footer?.layer.sublayerTransform = CATransform3DIdentity
        
    }
    

        }
    }

    func scrollToolbarsWithDelta(delta: CGFloat) {
        if scrollViewHeight >= contentSize.height {
            return
        }
