Ignition Slider Offset: Pointer Geometry, Not Tag Scaling

Karen Mitchell6 min read
HMI ProgrammingOther ManufacturerTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Ignition Perspective can show a valid slider value while placing the mouse hit target somewhere else. The decisive symptom is an offset that grows with the Flex Container or matches a dock width: the browser is calculating pointer position from the wrong layout origin. Touch operation, Preview mode, or a correct tag value does not clear the runtime layout path.

What is the screen telling you?

Start with the pointer, handle, and displayed value as separate signals. Drag slowly across the slider and note whether the handle follows the pointer, moves only after the pointer crosses an offset, or calculates a value from a different horizontal origin.

Screen symptom Likely layer Next check
Mouse offset increases when the browser widens Flex layout or pointer-coordinate calculation Repeat at the original narrow width and maximized width
Offset equals the visible dock width Dock translation omitted from the slider origin Hide the dock temporarily and repeat the drag
Preview or touch works but runtime mouse input fails Mouse-event geometry in the browser session Test the same value range with mouse and touch
Handle does not behave in any context Binding, slider configuration, or value range Inspect binding faults and the step value

A scaling error produces the wrong value per unit of travel. An origin error produces a nearly fixed displacement between the pointer and handle. Dock-width equality is especially diagnostic because it identifies the missing layout translation.

Check: Record the pointer-to-handle offset at two browser widths and with the dock shown and hidden. Continue only after classifying it as an origin offset, scaling problem, or non-layout failure.

Which runtime context introduces the offset?

Test the same View without changing its bindings. Reports covered Flex Containers at large widths, Views opened as popups, and pages with a dock present. Main and docked Views worked in one popup-specific case. A slider placed alone in a Flex Container still failed, so a preceding sibling is not required.

  1. Open the View in its normal runtime location and drag the full slider span with a mouse.
  2. Open the same View outside the popup when the project permits it.
  3. Run once with the dock visible and once with it temporarily disabled.
  4. Resize from the small design width to a maximized browser and compare the offset.
  5. Test Preview mode and a touch device only as comparison paths; neither reproduces the browser mouse coordinate calculation exactly.

Placing a Coordinate Container inside the same Flex Container did not remove the earlier failure because the outer flexed position still participates in the coordinate chain. A separate report on 8.1.16 Edge found the slider acceptable in an XY Container but not in a Flex Container. That distinction makes the top-level container boundary part of the test.

Check: Identify the smallest context change that removes the offset: leaving the popup, hiding the dock, returning to the narrow width, or removing the Flex Container from the slider's ancestor chain.

Is the tag right while the binding is wrong?

The tag can be correct while the component binding or layout is wrong. Trace the signal in order: displayed slider value, component binding, provider connection, driver, then controller address. A pointer-origin fault normally changes mouse interaction without corrupting the controller value before a write occurs.

  1. Read the slider value without touching the control and compare it with the bound tag.
  2. Inspect every binding on the supplied View and clear faulted bindings before judging the layout. A tested 8.0.15 View operated after its faulted bindings were removed.
  3. Inspect the binding feeding step. It must never evaluate to null or 0.
  4. Move the slider through a working input path and observe whether the tag changes.
  5. Confirm that the driver and controller show the same commanded value after the write.

Do not compensate for a fixed pixel offset by changing tag scaling. Scaling belongs to the value path; the observed displacement belongs to pointer geometry. Such compensation may appear correct at one width and fail after resizing or opening a dock.

Check: With faulted bindings removed and step nonzero, verify that a working input path writes the expected tag and controller value.

How should the layout be isolated?

Build the workaround at the boundary that changes the result. Moving a Coordinate Container inside the affected Flex Container is not sufficient when the outer container supplies the wrong origin. Test the slider in a View whose top-level layout does not reproduce the flex offset, then reintroduce popup and dock layers one at a time.

  1. Duplicate the affected View for commissioning so production bindings remain unchanged.
  2. Place the slider in a top-level XY or Coordinate layout and test it without a Flex Container ancestor.
  3. If the slider must remain in a popup, open that layout as the popup and test with every normal dock visible.
  4. If the popup path still fails, place the View directly in the main page as a controlled comparison.
  5. Restore responsive layout elements individually, testing mouse alignment after each change.

If both a direct main-page View and a top-level XY layout work, prefer the direct View when the screen architecture allows it because it removes the popup coordinate translation. When a popup is required, prefer changing the slider's top-level layout over permanently disabling a dock; the former preserves navigation while removing the implicated flex path.

Check: At minimum, drag at the smallest and largest supported browser widths with the normal dock arrangement restored.

Which Ignition version path applies?

Version Recorded behavior Engineering action
8.0.6 A prior Flex Slider issue was described as fixed for stable, but the large-width offset was still reproduced Reproduce the exact popup, dock, and width combination
8.0.7 Mouse offset reproduced Use the layout isolation test
8.0.8 A QA fix was planned for this release Do not infer resolution; test the deployed build
8.0.9 Offset reported after an upgrade from 8.0.3 Retest the same View before and after upgrade
8.0.12 and newer Popup-specific behavior was reproduced after substantial component rework Separate popup testing from main and docked Views
8.0.15 No general issue in one test; popup behavior was reproduced separately Remove binding faults, then test the popup explicitly
8.0.16 Target mentioned for the popup correction Verify behavior rather than treating the target as confirmation
8.1.16 Edge Flex failed while XY worked in one installation Test a top-level XY workaround

The two tracked identifiers are Bug-15540 and Bug-16737. Version number alone does not decide the result because popup placement, dock visibility, bindings, and container ancestry change the execution path.

Check: Record the exact installed version and repeat the failing layout matrix after any upgrade.

How do you verify the complete control path?

  1. Load the production View with its normal popup, docks, and responsive dimensions.
  2. Confirm that no component binding is faulted and that step is neither null nor 0.
  3. Drag from minimum to maximum and back using a mouse at narrow and maximized widths.
  4. Stop at several intermediate positions and confirm that the handle remains under the pointer.
  5. Read the component value, bound tag, driver-visible value, and controller value after each stop.
  6. Close and reopen the popup, resize the browser, toggle the dock through its normal operating sequence, and repeat the drag.

A passing test requires both coordinate alignment and correct data propagation. A handle that tracks the pointer but writes the wrong controller value remains a binding or scaling failure; a correct controller value reached only when the pointer is displaced remains a layout failure.

Check: Save the tested container hierarchy, version, browser dimensions, popup state, and dock state with the commissioning record.

FAQ

What happens if the slider works in Preview but not in the browser?

Test the browser with the popup and docks active. Preview success does not validate browser mouse-coordinate translation through a Flex Container.

What happens if hiding the dock fixes the slider offset?

Measure whether the original offset equals the dock width. Keep the dock and move the slider out of the affected flex coordinate chain when possible; disabling navigation is a diagnostic test, not the preferred permanent fix.

What happens if the layout fix works but the slider still will not write?

Remove faulted bindings, verify that step never becomes null or 0, then drag the slider and confirm the same value at the component, tag, driver, and controller.

Back to blog