Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

【CSS】横長の写真を横スクロールするスイッチ

 どうも!LSSです!!

 

今回は、ちょっと役にたつかも知れない??CSSを組んでみました。

最近ちょこちょこやってた事の合わせ技みたいな感じです。

 

f:id:little_strange:20210109231413p:plain

 

 

横長の写真を横スクロールするスイッチ

↓の画像の左上にある「←→」をクリックしてみてください^^


ある夏の日のポートタワー

  

 

コード

<style><!--
#bgscr{background-position:0px 0px;transition:10s linear 0s;}
#cgscr:checked~#bgscr{background-position:-900px 0px;}
--></style>
<div>
<input id="cgscr" style="display: none;" type="checkbox" />
<div id="bgscr" style="width: 300px; height: 638px; background-image: url('画像ファイルのURL');">
<label style="background-color: #00000080; border-radius: 15px; padding: 5px; margin: 5px; color: white; position: -webkit-sticky;position: sticky; top: 170px;" for="cgscr"> ← → </label>
<br />
<span style="font-weight: bold; text-shadow: 1px 1px 0px white, -1px -1px 0px white; font-size: 20px;">
ある夏の日のポートタワー
</span>
</div>
</div>

 

赤文字部分は「変更要 または 変更推奨」箇所です。

画像ファイルのURLは置きたい画像ファイルのURLに書き換える必要があります。

 

-900px の部分は、画像の横幅にあわせて調整します。

 

638px の部分は、画像の高さにあわせて調整します。

 

170px の部分は、スイッチが画面スクロール後にとどまる高さです。

よく分からない場合、0pxにするといいかと思います。

 

 

スイッチになる部分

<label style="background-color: #00000080; border-radius: 15px; padding: 5px; margin: 5px; color: white; position: -webkit-sticky;position: sticky; top: 170px;" for="cgscr"> ← → </label>

この部分がスイッチになります。

 

装飾をかけているため、長くなっていますが、最低限必要なのは、

<label for="cgscr">文字</label>

だけだったりします。

 

また、このサンプルでは画像上にスイッチを配置していますが、同じページ(記事)上であればどこに置いても動作します^^

 

 

スクロール速度

スクロールの速さを決めているのは、コード中2行目の 

#bgscr{background-position:0px 0px;transition:10s linear 0s;}

この「10s」の部分です。

 

これがスクロール完了までにかける時間をあらわしており、この例では「10秒」と指定している事になります。

 

 

不要な文言

<style><!--
#bgscr{background-position:0px 0px;transition:10s linear 0s;}
#cgscr:checked~#bgscr{background-position:-900px 0px;}
--></style>
<div>
<input id="cgscr" style="display: none;" type="checkbox" />
<div id="bgscr" style="width: 300px; height: 638px; background-image: url('画像ファイルのURL');">
<label style="background-color: #00000080; border-radius: 15px; padding: 5px; margin: 5px; color: white; position: -webkit-sticky;position: sticky; top: 170px;" for="cgscr"> ← → </label>
<br />
<span style="font-weight: bold; text-shadow: 1px 1px 0px white, -1px -1px 0px white; font-size: 20px;">
ある夏の日のポートタワー
</span>
</div>
</div>

 

青文字部分はサンプル文章で、好きに変更してもいいですし、バッサリ削除してもいいですw

オレンジの部分はスイッチとなる部分で、先に書いたように違うところに書いてもOKです。

 

 

シンプルにしたコード

装飾や不要な文言をカットし、スイッチを外に出したシンプルなコードも載せておきます。

 

<style><!--
#bgscr{background-position:0px 0px;transition:10s linear 0s;}
#cgscr:checked~#bgscr{background-position:-900px 0px;}
--></style>
<div>
<input id="cgscr" style="display: none;" type="checkbox" />
<div id="bgscr" style="width: 300px; height: 638px; background-image: url('画像ファイルのURL');">
</div>
</div>
<label for="cgscr"> ← → </label>

 

 

2021/1/15追記!面白い使い方を考えていただきました

カメさん (id:tn198403s)さんが このスクロールスイッチを使った面白い試みを記事にしてくださいました。

tn198403s.hatenablog.jp

なるほど、こんな使い方が!

イデア次第で予想外の使い方ができるんですね^^

 

カメさん様、ありがとうございます!

 

 

 

ってなとこで、今回はこのへんで!

次回もまた、よろしくお願いします^^