본문으로 건너뛰기

4.16.0

· 약 2분

Packages

PackageVersion
@egjs/flicking4.16.0
@egjs/react-flicking4.16.2
@egjs/vue3-flicking4.16.0
@egjs/flicking-plugins4.8.0

Highlights

React 19 support (@egjs/react-flicking)

  • The ESM/CJS builds now keep react/jsx-runtime and react/jsx-dev-runtime external, so the consumer's own React provides them.
  • Type declarations now reference React.JSX.IntrinsicElements (with React imported) instead of the removed global JSX namespace.
  • Compatible with React 16 / 17 / 18 / 19.

Documentation overhaul

  • Rebuilt the documentation site end to end.
  • Added an automated TypeScript-to-MDX API reference pipeline.
  • Added an LLM-friendly docs pipeline (llms.txt and pure-markdown mirrors).
  • Release notes are now reflected on the docs site automatically.

Development environment overhaul

  • Consolidated the previously separate @egjs/react-flicking, @egjs/vue3-flicking, and @egjs/flicking-plugins repositories into a single pnpm workspace monorepo, alongside the @egjs/flicking core.
  • Restructured the publish pipeline and replaced release-helper with a custom release/versioning script.
  • Reworked the local dev workflow (HMR dev servers, @dev/* import aliases, issue-reproduction scratch pattern).
  • Migrated the test suites and the Vue 3 demo to the Composition API.

Discontinued packages

  • The Svelte, Angular, and Vue 2 wrappers are no longer maintained and have been removed during the monorepo consolidation.
  • Their previously published versions remain installable on npm but will not receive further updates.

Note on @egjs/react-flicking versioning

  • @egjs/react-flicking ships as 4.16.2 in this release.
  • The initial 4.16.0 build bundled a stale react/jsx-runtime, which broke under React 19; 4.16.1 and 4.16.2 resolve the runtime and type-declaration issues respectively.
  • 4.16.0 is deprecated — please install 4.16.2 or later.

What's Changed

4.14.0

· 약 1분

What's Changed

4.13.1

· 약 1분

What's Changed

New Contributors

4.12.0

· 약 1분

New Feature

Bug Fix

  • Fixed an error where the initial Panel is set to the last Panel when display: none is applied to the viewport. (#903)

4.11.4

· 약 1분

Bug Fix

  • Fixed an error that disabled flicking blocks native scroll.

4.11.3

· 약 1분

Bug Fix

  • Fixed an error when destroy() is called immediately after resize() (#859)
  • Fixed a bug that events return the wrong direction on circular Flicking (#854)
  • Fixed an error when using bound and custom align props together (#850)
  • Fixed a bug that the threshold option does not apply to movetype: "snap" (#844)

4.11.2

· 약 1분

Bug Fix

  • fixed a bug that strict movetype moving wrong panel on circular flicking (#842)

4.11.1

· 약 1분

Bug Fix

  • Fixed a bug that nan occurs when calculating the size if element does not exist. (#833)
  • Fixed a bug that layout is broken when direction: rtl is applied to camera element. (#836)

4.11.0

· 약 1분

New Feature

  • Added a new option preventDefaultOnDrag (#820)

4.10.7

· 약 1분

Bug Fix

  • Fixed a bug that setStatus not working properly when index is 0 (#795)

4.10.6

· 약 1분

Bug Fix

  • Fixed position of the panel was calculated incorrectly when the duration is 0 and moveType is "strict". (#771)
  • Fixed CSS transform was not applied correctly during the SSR rendering process. (#773)

4.10.5

· 약 1분

Bug Fix

  • Fixed a bug that the resize event listener was not properly removed when the instance was destroyed. (#779)
  • Fixed the issue that the panel moved to an inappropriate position when a panel is clicked during sliding. (#777)

4.10.3

· 약 1분

Bug Fix

  • Fixed a bug that resizeOnContentsReady option cause error with lazy image loading inside panel (#745)

4.10.2

· 약 1분

Bug Fix

  • Fixed component dependency for frameworks (#741)
  • Fixed a bug that some setters doesn't update UI (#743)

4.10.1

· 약 1분

Bug Fix

  • Fixed a bug that preventClickOnDrag option prevents click event for movement less than 1 pixel (#738)

Others

  • @egjs/react-flicking , @egjs/preact-flicking 4.10.2
    • Added a new property renderOnSamekey (#735)
    • Fixed a bug that update occurs between rendering (#739)

4.10.0

· 약 1분

New Feature

  • Added a new method updateAnimation (#728)
  • Added a new method stopAnimation (#728)

Others

  • @egjs/ngx-flicking
    • setup vanilla flicking within the root zone and remove event listeners once the view is removed (#727)

4.9.3

· 약 1분

Bug Fix

  • Fixed a bug that Panel was not released when the input was canceled

4.9.2

· 약 1분

Bug Fix

  • Fixed moveTo causing unhandled error while user input is holding

4.9.1

· 약 1분

Bug Fix

  • Fixed panelsPerView option not working with adaptive option
  • Fixed bound option causing error when using with specific panel width

4.9.0

· 약 1분

New Feature

  • Added a new option - useFractionalSize (#692)

4.8.1

· 약 1분

Bug Fix

  • Fixed an error that click does not work after disableInput and then moveTo when preventClickOnDrag is true
  • Fixed Flicking spinning 1 cycle when moveType is "snap" with circular is true, align is "prev" and moving to adjacent panel. (#689)
  • Fixed wrong type definition of children in ViewportSlot (#693)

4.7.3

· 약 1분

Bug Fix

  • Fixed Flicking still not working properly in iOS environment

4.8.0

· 약 1분

New Feature

  • Added new option changeOnHold (#684)

Bug Fix

  • Fixed wrong camera offset on adaptive resize (#682)

4.7.2

· 약 1분

Bug Fix

  • Fixed Flicking not working in iOS Safari browser (#677)

4.7.1

· 약 1분

Bug Fix

  • Fixed horizontal Flicking blocking vertical drag (#673)

4.7.0

· 약 1분

New Feature

  • Added a new option: nested (#670)

4.6.3

· 약 1분

Bug Fix

  • Fixed wrong behavior when using strict & circular (#662)

4.6.2

· 약 1분

Bug Fix

  • Fixed camera position update while animating (#656)
  • Fixed willChange and willRestore can't be stopped (#659)

4.6.0

· 약 1분

New Feature

  • Added sass files
  • Added two new options - "resizeDebounce", "maxResizeDebounce"

Bug Fix

  • Removed es6 syntax in CFC codes
  • Fixed wrong rendering on React 18
  • Fixed v-if related bug in Vue@3
  • Fixed wrong rendering order when panel order is changed on frameworks.

4.6.1

· 약 1분

Bug Fix

  • Fixed wrong CSS publish

3.9.3

· 약 1분

Bug Fix

  • Fixed an issue that removed panel is included as a visible panel (#642)

4.5.1

· 약 1분

Bug Fix

  • Can't init using Vite + Vue3 (#631)
  • Can't call moveTo when using moveType:strict (#633)

3.9.2

· 약 1분

Bug fix

  • Fixed resizeOnContentsReady not working correctly on frameworks (#624)

3.9.1

· 약 1분

Bug Fix

  • Fixed wrong non-null assertion on panel cloning (#619)

4.5.0

· 약 1분

New Feature

  • Added new option circularFallback (#610)

Bug Fix

  • Fixed "constructor not found" error in svelte SSR

4.4.2

· 약 1분

Bug Fix

  • Fixed wrong sync behavior when removing all prev panels (#598)

4.4.1

· 약 1분

Bug Fix

  • Fixed preact-flicking is not working due to import error (#583)
  • Fixed Vue and Vue3 Flicking's typings

3.9.0

· 약 1분

New Feature

  • Added a new option: useResizeObserver

Bug fix

  • Fixed a bug that event's direction is always null after disabling input

4.4.0

· 약 1분

New Feature

  • Added a new option: virtual (#568)
  • Added a new option: useResizeObserver (#564)

Bug fix

  • Index is not updated when moving to same position (#570)

4.3.1

· 약 1분

Bug Fix

  • Fixed a bug that can't move from the last panel to the first panel when moveType: strict and circular is enabled (#562)

4.3.0

· 약 1분

New Feature

  • Added new option: resizeOnContentsReady (#546)

Bug Fix

  • currentPanel is null when the initial panel size is 0 (#548)

4.2.5

· 약 1분

Bug Fix

  • getRenderingPanels uses old list (#538)
  • Flicking is animating on moveEnd event (#541)

4.2.4

· 약 1분

Bug Fix

  • needPanel triggers multiple times when panel is appended by event callback (#522)
  • Angular peer dependency is not updated (#530)
  • sync - ordered not updates middle panel indexes (#529)
  • Vue3 render triggers update (#535)

4.2.3

· 약 1분

Bug Fix

  • resize places camera at wrong position in react-flicking (#519)
  • setPrototypeOf is not defined on IE10 or lower (#518)

4.2.2

· 약 1분

Bug Fix

  • bound not working when there're not enough panels to fill the viewport (#505)

3.8.4

· 약 1분

Bug Fix

  • Flicking doesn't update currentPanel after calling sync (#509)

4.2.0

· 약 1분

New Features

  • Added svelte-flicking@4.2.0
  • Added a new moveType, "strict"
  • Added a count option for "snap" moveType
  • Added preventEventsBeforeInit option
  • Added hideBeforeInit and firstPanelSize option for frameworks

Bug Fix

  • Fixed a bug that click events are prevented even though they are not triggered by panel elements
  • Fixed a bug that viewport size is wrong when there's a border applied to the viewport element
  • Fixed a bug that CFC methods are not exported in the umd(cjs) port of Flicking
  • Fixed a bug that Axes's releaseOnScroll option is not applied

4.2.1

· 약 1분

Bug Fix

  • Fixed a missing count option for the "snap" moveType

4.1.1

· 약 1분

Bug Fix

  • Definition error in ngx-flicking (#482)
  • select event can throw error when there's no element on panel in frameworks (#468)
  • preventClickOnDrag is not working on non-native clickable elements (#470)

4.1.0

· 약 1분

New Features

  • Added panelChange event (#464)

Bug Fix

  • changed triggered multiple times (#461)
  • missing resize in frameworks (#459)

4.0.0

· 약 3분

HTML structure

  • To support SSR(Server Side Rendering), Flicking no longer generates viewport & camera element.
  • So you have to create a viewport & camera element in your HTML template yourself.
  • Also, now you have to import CSS file we're providing and place a correct class names
    • We're now using flicking-viewport and flicking-camera instead of eg-flick-viewport and eg-flick-camera
  • All framework-based Flickings don't have to consider this change, as they're still generating inner elements for you.
<head>
<link rel="stylesheet" href="https://unpkg.com/@egjs/flicking@4.0.0/dist/flicking.css">
</head>
<body>
<div id="my-flicking" class="flicking-viewport">
<div class="flicking-camera">
<div>Panel 1</div>
<div>Panel 2</div>
<div>Panel 3</div>
</div>
</div>
</body>
const flicking = new Flicking("#my-flicking");

Changes when using umd modules

  • We've removed eg namespace on umd modules.
    • eg.Flicking is now just Flicking

Removed Options

  • CSS-related options
    • To support SSR, we've removed all CSS-related properties to guarantee UI when rendered in SSR frameworks.
    • gap
      • You can now set gaps between panels with CSS margins like margin-right or margin-bottom.
    • zIndex
      • You can now directly use CSS z-index to viewport element(.flicking-viewport) instead.
    • overflow
      • You can set overflow: visible to viewport element(.flicking-viewport) instead.
  • infinite and lastIndex
    • needPanel event is now always triggered without the option infinite
  • collectStatistics
  • thresholdAngle
  • isEqualSize and isConstantSize
  • anchor and hanger is now merged into the new option named align.
    • anchor: 20 and hanger: "40%" is same to align: { panel: 20, camera: "40%" }
  • infiniteThreshold is now renamed to needPanelThreshold

Removed methods

  • replace
    • As Flicking no longer supports isolated indexes, we've removed Flicking's replace and added prepend and insert instead.
  • Getters
    • We're now usinge a getter property instead of get- methods
    • getIndex() > index
    • getAllPanels() > panels
    • getElement() > element
    • getCurrentPanel() > currentPanel

Option Changes

  • adaptive is now only applicable when horizontal: true
  • moveType is now always a string

Option's default value changes

  • Default value of duration is now 500 (was 100)
  • Default value of bounce is now 20% (was [10, 10])
  • Default value of autoResize is now true (was false)

Method Changes

  • addPlugins and removePlugins do not longer accept arrays

Event Changes

  • needPanel is now can be triggered on the index 0
    • It always has direction: "PREV"
  • We don't longer provide the method fill() in needPanel event
    • As all panels now have continuous indexes, you can use prepend() or append() instead

3.8.3

· 약 1분

Bug Fix

  • resize throws error when there're empty panels between (#447)

3.8.2

· 약 1분

Bug Fix

  • currentPanel can be null after adding the panel on the frameworks when there were no panels (#439)

3.8.1

· 약 1분

Bug Fix

  • Flicking can move while the page's scrolling(#433)
  • Flicking fires select event on touch devices even if scrolling up/down(#432)

3.7.2

· 약 1분

Bug Fix

  • Flicking's camera position can be wrong when getStatus is called from the non-zero index (#421)

3.8.0

· 약 1분

Features

  • Add element property on "select" event

Bug Fix

  • Wrong panel positions after calling setStatus (#423)
  • ngx-flicking: getCloneCount is not defined after destroy (#419)

3.7.1

· 약 1분

Bug Fix

  • next/prev/moveTo not work after disableInput(#407)

3.7.0

· 약 1분

Features

  • Added getSize() (#401)
  • Added resizeOnImagesReady option (#396)

3.6.3

· 약 1분

Bug fix

  • Prepending panels in frameworks can break carousel with renderOnlyVisible option(#389)

Docs

  • Fix a typo in MoveTypeSnapOption description(#388)

3.6.2

· 약 1분

Bug Fix

  • Panels are not positioned correctly with renderOnlyVisible option (#382)

3.6.1

· 약 1분

Fixes

  • Fixed renderOnlyVisible option makes Flicking doesn't apply panel's CSS (#382)

3.6.0

· 약 1분

Features

  • Add typescript event type inference support

3.5.1

· 약 1분

Bug Fix

  • Camera position can be wrong when resized with "freeScroll" and "bound" (#376)

3.5.0

· 약 1분

Added

  • Add iOSEdgeSwipeThreshold option

3.4.7

· 약 1분

Bug Fix

  • touchmove ends when renderOnlyVisible is enabled (#342)

3.4.5

· 약 1분

Bug fix

  • Page can be scrolled when Flicking resize occurs (#333)

3.4.6

· 약 1분

Bug Fix

  • The adaptive option does not work after #334

3.4.4

· 약 1분

Bug Fix

  • Scroll area calculation can be wrong when the sum of the panel sizes is smaller than the viewport size (#322)
  • Unnecessary methods have exported to the framework (#326)

3.4.3

· 약 1분

Bug Fix

  • viewport size recalculation is done after moveEnd event

3.4.2

· 약 1분

Bug Fix

  • "change" event is triggered on the bounce area (#305)
  • "select" event is always triggered on mobile devices (#304)

Feat

  • Add Google Analytics to Vue & Angular (#306)

Document Fix

  • Mismatched descriptions in Flicking options (#307)

3.4.0

· 약 1분

Features

  • Added renderOnlyVisible option, which can dramatically increase performance when there're many panels.
  • Added isEqualSize and isConstantSize option.
    • isEqualSize(boolean | string[]) option can skip panel size recalculation, which can increase performance when adding a panel or resize().
    • isConstantSize(boolean) option will assume that panel's size won't change after resize. It can increase the performance of resize().
    • See FlickingOptions for more info.
  • Added useOffset option. This will use offsetWidth instead of getBoundingClientRect, so it can calculate panel's original width when CSS transform is applied to panel.
    • ⚠️ Using useOffset when the panel's size is not integer can lead to 1px white space between panels.
  • Added fill() method for needPanel event, which makes user to add panel easily without considering event direction.

3.4.1

· 약 1분

Bug Fix

  • Fix circular dependency #294, #295

3.3.2

· 약 1분

Bugs

  • Cannot set zIndex 0 #267

3.3.0

· 약 1분

Features

  • Google analytics integration #258
    • Add collectStatistics option

Document Fix

  • resize is regarded as Flicking's variable not method #262

3.3.1

· 약 1분

Fix

  • README file not appearing on npm

3.2.1

· 약 1분

Fix

  • Clone count miscalculation #241
  • resize() makes more clones #243
  • Enabling autoResize option triggers error #248
  • Called next(), but moves to previous direction on circular mode #250
  • Camera moves out of bound with bound option #219

3.2.0

· 약 1분

Features

  • Option to preserve style when destroy() called #232
  • Relative camera positioning #227

Fix

  • In freeScroll mode, duration also happens to be very short when the distance to move is short. #230
  • Window event is not detached when destroy() is called #229
  • Rotating screen will make blank space in flicking area if free scroll is enabled #226

Chore

  • Add google analytics tools to features, plugins demo #236

3.1.0

· 약 1분

Features

  • Add sync method for frameworks #199
  • Add update interface for panel's add, remove, or update #215
  • Add getLastIndex method #217
  • Add @withFlickingMethods property decorator #210
  • Add getCloeCount method #200

Changes

  • Can assign non-number values in setLastIndex #204
  • If Viewport or Camera element exists, use it. #198

Bugs

  • needPanel event isn't triggered when there is no panels. #206
  • Removing all panels in needPanel event will emit error. #205

3.1.1

· 약 1분

Changes

  • Remove packages on npmignore.

2.4.4

· 약 1분

fix

  • When called in the order of dragging => restore method => resize method > dragging, the second dragging will not be moved into place. (#169)

3.0.1

· 약 1분

Bugs

  • Target panel isn't recalculated if interrupted in circular mode (#171)
  • snap move type's target panel is calculated from release position, not start position (#174)
  • Panel is aligned after calling resize() in freeScroll move type (#177)
  • Changing panel size in FlickingPanel's update() breaks layout (#178)
  • getCurrentPanel() returns null after calling setStatus() (#180)
  • Panels are filled with empty after insertBefore/prepend (#181)
  • Calling stop() won't stop events immediately (#184)
  • No needPanel event is triggered when there're no panels (#185)
  • Can't loop with circular option enabled at Android 4.4.2 (#187)
  • Consecutive flicking with circular option targets wrong panel to move (#190)
  • change event is triggered with same panel with freeScroll option (#191)
  • Cannot use namespace 'Flicking' as a type (#195)
  • Interrupting in bounce area will set target panel at opposite end (#196)

3.0.0

· 약 1분

Overall

  • Now supports variable size.
  • Now supports align, with hanger and anchor.
  • Now supports infinite flicking.
  • Added bound option.
  • Added gap option.
  • Added "moveType" option.
    • snap and freeScroll is added.
  • Added progresses, visibleRatio properties.
  • Renovated event system.
  • Renovated old Element-based interface to Panel-based interface

2.4.3

· 약 1분

Bugs

  • fix moveTo method for previewPadding and circular (#159)

2.4.2

· 약 1분

Changes

  • Export Plugins(ParallaxEffect, OpacityEffect) in flicking #140
  • Support for flicking in node.js #139

Bugs

  • next/prev() function is making wrong transition when they are used with Touch #133

2.4.1

· 약 1분

Changes

  • Change Webpack to Rollup (#137)

2.4.0

· 약 1분

Features :

  • Options
    • Intent to ship useTranslate (#113)

Bug Fixes :

  • Plugin
    • Fix parallaxEffect to work on multiple panels (#122)

Refactorings :

  • Style
    • Mitigate style recalculation (#118)

Chore tasks :

  • Dev-env
    • Add nightly build (#119)
    • Update dev-env & build (#114)

2.3.0

· 약 1분

Features :

  • Plugin

    • Intent to ship plugin interface (#103)
  • Options

    • Intent to ship zIndex option (#83)
    • Intent to ship previewPadding with '%' value (#19)

Bug Fixes :

  • Resize
    • Remove updating container's width (#77)

Code Styles :

  • Flicking
    • Change the position of this keyword (#84)

Chore tasks :

  • Definition

    • Update getStatus return type (#98)
  • All

    • Clarify modules imports (#94)
  • Dev-env

    • Update on build & dependencies (#89)
  • Module

    • Update babel-preset (#79)

2.2.0

· 약 1분

Bug Fixes :

  • Event

    • Set to null e.distance on API call (#64)
  • Utils

    • Correct getting panel's dimension (#52)

Documents :

  • All
    • Reinforce API description (#59)

Code Styles :

  • Flicking

    • Mark physical as deprecated (#61)
  • Utils

    • Remove outdated .isHWAccelerable() (#66)
  • D.ts

    • Add return types (#57)

Refactorings :

  • Flicking
    • Remove .getTotalCount() (#69)

Chore tasks :

  • Flicking
    • Update egjs-axes to 2.4.2 (#72)

2.1.0

· 약 1분

Features :

  • Event
    • Intent to ship event.isTrusted (#41)

Chore tasks :

  • Dependency

    • Update dependencies (#46)
  • Flicking.d.ts

    • Add type definition (#35)

2.0.3

· 약 1분

Bug Fixes :

  • Flicking
    • Fix destroying (#34)

2.0.2

· 약 1분

Bug Fixes :

  • EventHandler
    • Adjust animation status (#30)

2.0.1

· 약 1분

Bug Fixes :

  • Flicking
    • Correct wrong restore event calls (#23)

2.0.0

· 약 1분

Features :

  • All

    • Removed jQuery dependency
    • Implemented new eg.Axes as part of eg.MovableCoord removal
    • Separation from egjs library to be as independent module
  • Flicking

    • Intent to ship new status methods (#1)

Bug Fixes :

  • All

    • Fix causing error when calling .resize() during panel animation (#492)
    • Fix on previewPadding resizing (#489)
  • Consts, Flicking

    • Correct transform prop name (#5)
  • Flicking

    • Change getting wrapper's size (#7)

Tests :

  • All
    • Changed test framework from QUnit to Mocha/Chai and Karma suit
    • Changed headless browser from PhantomJS to ChromeHeadless