検索

Reel

このページは現在調整中です
Lism UI (@lism-css/ui) はまだ準備中です。

コンテンツを横スクロールで表示するリールコンポーネントの作成例を紹介します。

Flex で実装する例

Flex で実装する例 ( スクロールして確認してください )
<Flex hasSnap ov="auto" g="20" bdrs="20">
<ReelImages ar="16/9" fxsh="0" w="100%" bdrs="20" />
</Flex>
リールの余白に合わせてスナップ位置を調整する例 ( スクロールして確認してください )
リサイズ
<Flex hasSnap ov="auto" bgc="black" p="20" g="20" bdrs="30" style={{ 'scroll-padding': 'var(--p)' }}>
<Frame ar="16/9" bdrs="20" fxsh="0" w="90%">
<img src="https://cdn.lism-css.com/img/u-1.jpg" alt="" />
</Frame>
<Frame ar="16/9" bdrs="20" fxsh="0" w="90%">
<img src="https://cdn.lism-css.com/img/u-2.jpg" alt="" />
</Frame>
<Frame ar="16/9" bdrs="20" fxsh="0" w="90%">
<img src="https://cdn.lism-css.com/img/u-3.jpg" alt="" />
</Frame>
<Frame ar="16/9" bdrs="20" fxsh="0" w="90%">
<img src="https://cdn.lism-css.com/img/u-4.jpg" alt="" />
</Frame>
<Frame ar="16/9" bdrs="20" fxsh="0" w="90%">
<img src="https://cdn.lism-css.com/img/u-5.jpg" alt="" />
</Frame>
</Flex>
snap-align centerにして要素のサイズをレスポンシブに調整する例 ( スクロールして確認してください )
リサイズ
<Flex hasSnap ov="auto" g="20" p="15" bgc="black" bdrs="20" style={{ '--snapAlign': 'center' }}>
<Frame ar="16/9" fxsh="0" w={['80%', '60%']} mx-s={['10%', '20%']} bdrs="20">
<img src="https://cdn.lism-css.com/img/u-1.jpg" alt="" />
</Frame>
<Frame ar="16/9" fxsh="0" w={['80%', '60%']} bdrs="20">
<img src="https://cdn.lism-css.com/img/u-2.jpg" alt="" />
</Frame>
<Frame ar="16/9" fxsh="0" w={['80%', '60%']} bdrs="20">
<img src="https://cdn.lism-css.com/img/u-3.jpg" alt="" />
</Frame>
<Frame ar="16/9" fxsh="0" w={['80%', '60%']} bdrs="20">
<img src="https://cdn.lism-css.com/img/u-4.jpg" alt="" />
</Frame>
<Frame ar="16/9" fxsh="0" w={['80%', '60%']} mx-e={['10%', '20%']} bdrs="20">
<img src="https://cdn.lism-css.com/img/u-5.jpg" alt="" />
</Frame>
</Flex>

Gridで実装する例

Preview ( スクロールして確認してください )
リサイズ
<Grid hasSnap ov="auto" gaf="column" gac="100%" g="20" bdrs="20" tabIndex="0">
<ReelImages ar="16/9" bdrs="20" />
</Grid>

gridでリールの子要素のサイズをレスポンシブに調整する場合、あれば gac(grid-auto-columns) に --colsを指定してください。
(gacは標準状態ではレスポンシブ対応がありません。)

Preview ( スクロールして確認してください )
リサイズ
<Grid hasSnap ov="auto" gaf="column" gac="var(--cols)" cols={['70%', '40%']} g="15" bdrs="20" tabIndex="0">
<Frame ar="16/9" bdrs="20">
<img src="https://cdn.lism-css.com/img/u-1.jpg" alt="" />
</Frame>
<Frame ar="16/9" bdrs="20">
<img src="https://cdn.lism-css.com/img/u-2.jpg" alt="" />
</Frame>
<Frame ar="16/9" bdrs="20">
<img src="https://cdn.lism-css.com/img/u-3.jpg" alt="" />
</Frame>
<Frame ar="16/9" bdrs="20">
<img src="https://cdn.lism-css.com/img/u-4.jpg" alt="" />
</Frame>
<Frame ar="16/9" bdrs="20">
<img src="https://cdn.lism-css.com/img/u-5.jpg" alt="" />
</Frame>
</Grid>

ナビゲーションをつける

reel要素にidを付けてアンカーリンク用意すると、ナビゲーションになります。

ボタンナビゲーションをつける
<Grid hasSnap ov="auto" gaf="column" gac="75%" g="15" bdrs="20" style={{ '--snapAlign': 'center', 'scroll-behavior': 'smooth' }}>
<Frame id="image-1" ar="16/9" bdrs="20"><img src="https://cdn.lism-css.com/img/u-1.jpg" alt="" /></Frame>
<Frame id="image-2" ar="16/9" bdrs="20"><img src="https://cdn.lism-css.com/img/u-2.jpg" alt="" /></Frame>
<Frame id="image-3" ar="16/9" bdrs="20"><img src="https://cdn.lism-css.com/img/u-3.jpg" alt="" /></Frame>
<Frame id="image-4" ar="16/9" bdrs="20"><img src="https://cdn.lism-css.com/img/u-4.jpg" alt="" /></Frame>
<Frame id="image-5" ar="16/9" bdrs="20"><img src="https://cdn.lism-css.com/img/u-5.jpg" alt="" /></Frame>
</Grid>
<Flex g="15" jc="center" lh="1" my-s="15">
<Lism as="a" href="#image-1" c="inherit" bgc="base-2" w="2em" h="2em" ta="center" ac="center" bdrs="10" td="none" hov="-o">1</Lism>
<Lism as="a" href="#image-2" c="inherit" bgc="base-2" w="2em" h="2em" ta="center" ac="center" bdrs="10" td="none" hov="-o">2</Lism>
<Lism as="a" href="#image-3" c="inherit" bgc="base-2" w="2em" h="2em" ta="center" ac="center" bdrs="10" td="none" hov="-o">3</Lism>
<Lism as="a" href="#image-4" c="inherit" bgc="base-2" w="2em" h="2em" ta="center" ac="center" bdrs="10" td="none" hov="-o">4</Lism>
<Lism as="a" href="#image-5" c="inherit" bgc="base-2" w="2em" h="2em" ta="center" ac="center" bdrs="10" td="none" hov="-o">5</Lism>
</Flex>

大きい画面サイズでReelを解除する

小さい画面サイズでのみリールで表示したい場合は、gaf(grid-auto-flow) をrowに戻します。
gaf(grid-auto-flow) をrowに戻したタイミングで、gtc(grid-template-columns)をrepeat(2, 1fr)にして2カラム表示に切り替える例を紹介します。

~@mdでのみリール表示するを解除する例 ( スクロールして確認してください )
リサイズ
<Grid hasSnap ov="auto" g="15" gaf={['column', null, 'row']} gac="75%" gtc={[null, null, 'repeat(2, 1fr)']}>
...
</Grid>

縦向きのリール

Preview ( スクロールして確認してください )
リサイズ
<Box max-w="24rem" mx="auto">
<Box class="has--snap" ov="auto" ar="3/4" bdrs="20" bgc="black">
<Frame ar="3/4">
<img src="https://cdn.lism-css.com/img/v/u-1.jpg" alt="" />
</Frame>
<Frame ar="3/4">
<img src="https://cdn.lism-css.com/img/v/u-2.jpg" alt="" />
</Frame>
<Frame ar="3/4">
<img src="https://cdn.lism-css.com/img/v/u-3.jpg" alt="" />
</Frame>
<Frame ar="3/4">
<img src="https://cdn.lism-css.com/img/v/u-4.jpg" alt="" />
</Frame>
</Box>
</Box>

© Lism CSS. All rights reserved.