             return self.pageViewController?.viewControllers?.last
         }
     }
-    
+    /// Whether the page view controller position is currently resting on a page index.
+    internal var isPositionedOnPageIndex: Bool {
+        let currentPosition = navigationOrientation == .horizontal ? self.currentPosition?.x : self.currentPosition?.y
+        return currentPosition?.truncatingRemainder(dividingBy: 1) == 0
+    }
     
     /// Auto Scroller for automatic time-based page transitions.
     public let autoScroller = PageboyAutoScroller()

    public var isDragging: Bool {
            return self.pageViewController?.scrollView?.isDragging ?? false
    }
    /// Whether user interaction is enabled on the page view controller.
    ///
    /// Default is TRUE

        
        // guard against any current transition operation
        guard self.isScrollingAnimated == false else { return false }
        guard !(self.isTracking && self.isDragging && self.isDecelerating) else { return false }
        guard self.isPositionedOnPageIndex else { return false }
        guard let pageViewController = self.pageViewController else { return false }
        
        let rawIndex = self.indexValue(for: page)
