Allow a user to show more or less of a card or list with a button (client side).
-
data-vf-js-show-more
The containing element, does not have to be a direct parent -
data-vf-js-show-more-pager-size=3
The number of items to show on first page load -
class="vf-show-more__item"
Items to be shown hidden (display done with CSS) -
data-vf-js-show-more-button
The button to show more -
data-vf-js-show-more-button--less
The button to show less, optional
A condensed example.
<section data-vf-js-show-more data-vf-js-show-more-pager-size="3" class="vf-show-more">
<a href="#" class="vf-box | vf-show-more__item">
<p class="vf-box__text">I'm item number 1</p>
</a>
<button class="vf-button | vf-show-more__button" data-vf-js-show-more-button>Show more</button>
<button class="vf-button | vf-show-more__button--less" data-vf-js-show-more-button--less>Show less</button>
</section>
- Pager support
- Currently designed to work with pre-loaded HTML. It should be possible to use it with lazy-loaded HTML with a few considerations.
This repository is distributed with [npm][https://www.npmjs.com/]. After [installing npm][https://www.npmjs.com/get-npm] and yarn, you can install vf-show-more
with this command.
$ yarn add --dev @visual-framework/vf-show-more
You should import this component in ./components/vf-component-rollup/scripts.js
or your other JS process:
import { vfcomponentName } from 'vf-show-more/vf-show-more';
// Or import directly
// import { vfcomponentName } from '../components/raw/vf-show-more/vf-show-more.js';
vfcomponentName(); // if needed, invoke it
If your component uses Sass:
The style files included are written in Sass. If you're using a VF-core project, you can import it like this:
@import "@visual-framework/vf-show-more/index.scss";
Make sure you import Sass requirements along with the modules. You can use a project boilerplate or the vf-sass-starter