Sample List

【Vue.js】No.010 レンジ入力欄の値と連動させてみた

概要

HTML5から追加されたinputタグでレンジ入力欄というのがあります。この詳細について、ここでは割愛させていただきますが、度合いを調節できるインターフェースで、スライダーと言った方がピンとくるかもしれませんね。

このタグは以下のように描画されます。

コードサンプル

cssのtransformを用いて、正方形のdiv要素を回転や拡大縮小させてみたいと思います。
以下のようにHTMLを準備してみます。

<div id="test1">
  <h3>回転させる</h3>
  <div class="square" v-bind:style="{ transform: 'rotate('+rotate+'deg)' }"></div>
  <p>{{ rotate }}</p>
  <input type="range" max="360" v-model="rotate">
  <h3>拡大・縮小させる</h3>
  <div class="square" v-bind:style="{ transform: 'scale('+scale+')' }"></div>
  <p>{{ scale }}</p>
  <input type="range" max="1.5" step="0.1" v-model="scale">
</div>

回転・拡大縮小それぞれのレンジ入力欄(スライダー)と正方形のdiv要素を置いてます。
v-bind:style部分でレンジ入力欄(スライダー)の値をバインディングさせています。これにより、レンジ入力欄(スライダー)が動くとrotatescaleが動的に変わります。

Vue.jsは以下のようにしてみましょう(といっても各データの初期値設定しているぐらいですが…)。

new Vue( {
  el: '#test1',
  data: {
    rotate: 0,
    scale: 1
  }
} )

動作確認

実際にレンジ入力欄(スライダー)を動かして動作を確認してみましょう!

回転させる

{{ rotate }}

拡大・縮小させる

{{ scale }}

一覧に戻る