見出し画像

Velo 第85回 画像のfitMode

ページに画像を追加すると、その画像はそこに他の画像を貼り付けるためのコンテナになります。
その際、他の画像をそのコンテナにどう収めるかを決めるのが fitMode になります。

アップロードされた画像はメディアマネジャーに管理されますが、下図の Taro.png では originWidth=569&originHight570 とある様にその画像サイズも登録されています。
つまり Taro.png はディメンジョンが569×570の画像であると分かります。

Taro.png の fileUrl

この画像をページに追加し、他の画像のコンテナとした場合のフレームサイズは 569×570 と言うことになります。
fitModeはこのフレームサイズに適用されるプロパティです。

ただし、ネットワークから URL を使って貼り付けられた画像にはディメンジョン情報がありませんので fitMode は機能しません。

さて Velo API Reference の記事から3つのモードの違いを参照してみましょう。
ここではディメンジョンが 100×100 の正方形の画像をフレームとしたとき、4種類の画像がこのフレームにどう収まるかを説明しています。

100×100のフレームに収める方法

fill

縦横小さい方のディメンジョンがフレームのディメンジョンに一致するように画像を中心拡大または縮小します。
下図の風船では画像の横150がフレームの横100に一致する様に中心縮小しています。

逆に水筒では画像の横50をフレームの横100に中心拡大しています。
画像が正方形でなければ縦横大きい方のディメンジョンがトリミングされます。

fitMode = 'fill'

fit

縦横大きい方のディメンジョンがフレームのディメンジョンに一致するように画像を中心拡大または縮小します。
下図のスイカでは画像の横200がフレームの横100に一致する様に中心縮小しています。

画像はトリミングされず全表示されますが、その分余白が多くなります。

fitMode = 'fit'

fixedWidth

横のディメンジョンがフレームの横のディメンジョンに一致する様に画像を中心拡大または縮小し、画像の上端をフレームの上端に一致させるように配置します。
フレームの縦のディメンジョンは画像に合わせて伸縮します。

fitMode = 'fixedWidth'

ページエレメント

下図の様に、ページにフレーム(frameImage)、画像(image1)、3つのモードボタン(fillButton、fitButton、fixedWidthButton)を設置しました。

ページエレメント

コーディング

下図の様に各ボタンのクリックイベントとして fitMode をコーディングしました。

fitMode のコーディング

実行結果

プレビュー・モードでは fixedWidth が上手く実行できませんが公開モードでは問題なく実行しています。
これはVelo by Wix Example でも同様の現象が起こっています。

fillの実行

fitMode = 'fill'

fit の実行

fitMode = 'fit'

fixedWidth の実行

fitMode = 'fixedWidth'

Velo開発のご依頼はこちら

いいなと思ったら応援しよう!