Slider Component For Comparing Two Images with vue

img-comparison-slider

Slider component for comparing images (before and after).

Why yet another slider?

Because all existing solutions lack at least one of the features:

  • Mobile friendly
  • Accessible
  • Responsive
  • jQuery free
  • Compatible with modern frameworks (React,
    Angular,
    Vue)
  • Distributed through CDN or NPM
  • Zero dependencies

Installation

HTML

<script
  type="module"
  src="https://unpkg.com/img-comparison-slider@3/dist/component/component.esm.js"
></script>
<script
  nomodule=""
  src="https://unpkg.com/img-comparison-slider@3/dist/component/component.js"
></script>
<link
  rel="stylesheet"
  href="https://unpkg.com/img-comparison-slider@3/dist/collection/styles/initial.css"
/>

<img-comparison-slider>
  <img slot="before" src="before.jpg" />
  <img slot="after" src="after.jpg" />
</img-comparison-slider>

Frameworks support

Styling

The component could be styled with the help of CSS3 variables.

Example:

<style type="text/css">
  img-comparison-slider {
    --divider-width: 2px;
    --divider-color: #c0c0c0;
    --handle-opacity: 0.3;
  }
</style>

Available variables

Variable Description Default value
--divider-width Width of the vertical line dividing both images 1px
--divider-color Color of the vertical line dividing both images #d7d7d7
--handle-size Size of the handle in the middle of divider 40px
--handle-color Color of the handle in the middle of divider #d7d7d7
--handle-opacity Opacity of the handle 0.5
--handle-opacity-active On focus opacity of the handle 0

GitHub