Skip to main content

Disable Input

The disableOnInit option disables user input (drag) on initialization. Useful for carousels controlled only by buttons or the API.

import Flicking from "@egjs/flicking";
import "@egjs/flicking/dist/flicking.css";
import "./styles.css";

// disableOnInit: false (default)
new Flicking("#flick-enabled", {
  disableOnInit: false,
  align: "center"
});

// disableOnInit: true
new Flicking("#flick-disabled", {
  disableOnInit: true,
  align: "center"
});

// dynamic toggle
const flickingToggle = new Flicking("#flick-toggle", {
  align: "center"
});

let isDisabled = false;
const button = document.getElementById("toggle-btn");
const label = document.getElementById("toggle-label");

button.addEventListener("click", () => {
  if (isDisabled) {
    flickingToggle.enableInput();
    button.textContent = "Disable input";
    label.textContent = "Dynamic toggle: enabled";
  } else {
    flickingToggle.disableInput();
    button.textContent = "Enable input";
    label.textContent = "Dynamic toggle: disabled";
  }
  isDisabled = !isDisabled;
});

Summary

Key Options

OptionTypeDefaultDescription
disableOnInitbooleanfalseDisable input on initialization

Comparison by Value

ValueBehaviorSuitable For
falsePanels can be moved by dragging (default)General carousels
trueDrag is ignored, only API control availableAuto-play sliders, button-only control

Details

How disableOnInit Works

When disableOnInit: true is set, the disableInput() method is automatically called on initialization. After this, user drag input is ignored, but programmatic controls such as moveTo(), prev(), and next() work normally.

Dynamic Control Methods

You can change the input enabled state at runtime.

const flicking = new Flicking("#el");

// Disable input
flicking.disableInput();

// Enable input
flicking.enableInput();
  • Relationship with inputType: inputType: [] also disables input, but disableOnInit allows later activation with enableInput().

Use Cases

When to use?
  • disableOnInit: true: Auto-play carousels, UI controlled only by buttons/arrows, presentations requiring touch prevention
  • Dynamic toggle: Allow drag only under certain conditions, disable background carousel when a modal is open

Notes

Provide alternative controls

When disableOnInit: true is set, dragging is not possible. Be sure to provide alternatives such as navigation buttons, arrows, or keyboard controls.