jQuery UI tips 1 - sortable を使ってスマートフォンアプリっぽい UI と並び替えを実装してみた
7 years ago
はじめに
最近, 仕事として Web でアプリっぽい表現が求められることが多くなってきました. いろいろと tips が溜まってきたのでちょこちょこ備忘録がてら紹介しようと思います.
デモサンプル
今回作ったデモサンプルです. ドラッグ & ドロップで並び替えできるのがわかるかと思います.
前回紹介した『jQuery UI Touch Punch』も入れてあるのでスマートフォンでも動かせます.
ソースコード
実装コードになります.
Setup
CDN から引っ張ってきてます.
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.0/jquery-ui.css' />
<script src='https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js'></script>
HTML
アイテム要素を並べてます.
<div class='items'>
<div class='item'>Item A</div>
<div class='item'>Item B</div>
<div class='item'>Item C</div>
<div class='item'>Item D</div>
<div class='item'>Item E</div>
</div>
CSS
スマホっぽく整形
h1 {
margin: 0;
font-size: 1.5rem;
background-color: hsl(220, 100%, 70%);
color: white;
text-align: center;
height: 45px;
line-height: 45px;
}
.item {
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
line-height: 40px;
padding-left: 10px;
background-color: white;
}
.item:first-child {
border-top: 1px solid rgba(0, 0, 0, 0.1);
}
.item:hover {
background-color: #eee;
}
JavaScript
jQuery UI の sortable を使ってる箇所です.
$(function() {
$( ".items" ).sortable({
axis: 'y',
});
});
解説
特に細かく解説することもないんですが, CSS で良い感じにスマホっぽくスタイリングして
あとは sortable のオプションに axis: 'y'
を渡すことで縦方向にのみ
並び替えできるアイテム一覧ページを表現してます.
最後に
こんな感じでスマホっぽい UI を作って Cordova で包むだけで簡単にアプリ作れますよー♪ ってことを仕事でやってたりします.
次回はハンドルを付けてそこをタッチしたときのみ並び替えできるようにする方法を 紹介したいと思います.