<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="jquery-ui.min.css">
<script src="./external/jquery/jquery.js"></script>
<script src="jquery-ui.min.js"></script>
<style>
.ui-selected {
background: red;
}
</style>
</head>
<body>
<div id="bar" style="width:200px"></div>
<div id="slider" style="width:200px; margin-top:20px"></div>
<script>
$(function(){
$('#bar').progressbar({
value: 0
});
$('#slider').slider({
slide: function(event, ui){
console.log(ui.value);
$('#bar').progressbar('option', 'value', ui.value);
}
});
});
</script>
</body>
</html>
Month: November 2016
Datepicker
Datepickerは表示する日付を制限できます。例:上の動画のように、本日から1カ月先まで
minDate:0,
maxDate: “+1M”
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="jquery-ui.min.css">
<script src="./external/jquery/jquery.js"></script>
<script src="jquery-ui.min.js"></script>
<style>
.ui-selected {
background: red;
}
</style>
</head>
<body>
<input type="text" id="datepicker">
<script>
$(function(){
$('#datepicker').datepicker({
dateFormat: "yy-mm-dd",
minDate:0,
maxDate: "+1M"
});
});
</script>
</body>
</html>
dialog
<body>
<button>open!</button>
<div id="msg">こんにちは。
</div>
<script>
$(function(){
$('button').click(function(){
$('#msg').dialog('open');
});
$('#msg').dialog({
autoOpen: false,
buttons: {
"ok": function (){
$(this).dialog('close');
}
},
title: "title",
modal: true
});
});
</script>
</body>
Accordion
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="jquery-ui.min.css">
<script src="./external/jquery/jquery.js"></script>
<script src="jquery-ui.min.js"></script>
<style>
.ui-selected {
background: red;
}
</style>
</head>
<body>
<div id="accordion">
<h3><a href="">title</a></h3>
<div>こんにちは。</div>
<h3><a href="">title</a></h3>
<div>こんにちは。</div>
<h3><a href="">title</a></h3>
<div>こんにちは。</div>
<h3><a href="">title</a></h3>
<div>こんにちは。</div>
</div>
<script>
$(function(){
$('#accordion').accordion();
});
</script>
</body>
</html>
autocomplete
<script>
$(function(){
var langs = ["ja", "en", "cn", "fr", "sp"];
$('#langs').autocomplete({
source: langs
});
});
</script>
Sortable
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="jquery-ui.min.css">
<script src="./external/jquery/jquery.js"></script>
<script src="jquery-ui.min.js"></script>
<style>
.ui-selected {
background: red;
}
</style>
</head>
<body>
<ul id="sortable">
<li id="item_1">item1</li>
<li id="item_2">item2</li>
<li id="item_3">item3</li>
<li id="item_4">item4</li>
<li id="item_5">item5</li>
</ul>
<script>
$(function(){
$('#sortable').sortable({
cursor: 'move',
opacity: 0.5,
update: function(event, ui){
$(this).sortable("serialize");
}
});
});
</script>
</body>
</html>
Resizable
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="jquery-ui.min.css">
<script src="./external/jquery/jquery.js"></script>
<script src="jquery-ui.min.js"></script>
<style>
.box {
width: 100px;
height: 100px;
background: red;
}
</style>
</head>
<body>
<div class="box">box</div>
<script>
$(function(){
$('.box').draggable().resizable({
handles: 'all',
//aspectRatio: true
stop: function (event, ui){
console.log(ui.size.hight, ui.size.width);
}
});
});
</script>
</body>
</html>
Selected
<script>
$(function(){
var selected = new Array();
$('#selectable').selectable({
selected: function(event, ui){
selected.push(ui.selected.id);
console.log(selected);
},
unselected: function(event, ui){
var id = ui.unselected.id;
selected.splice(selected.indexOf(id), 1);
console.log(selected);
}
});
});
</script>
Droppable
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="jquery-ui.min.css">
<script src="./external/jquery/jquery.js"></script>
<script src="jquery-ui.min.js"></script>
<style>
.box {
width: 50px;
height: 50px;
background: #ccc;
margin-bottom: 20px;
}
.target {
width: 100px;
height: 100px;
background: pink;
}
</style>
</head>
<body>
<div class="box">box</div>
<div class="target">target</div>
<script>
$(function(){
$('.box').draggable();
$('.target').droppable({
accept: '.box',
drop: function(event, ui){
console.log('dropped!');
}
});
});
</script>
</body>
</html>
ui追加
$(function(){
$('.box').draggable({
helper: 'clone'
});
$('.target').droppable({
accept: '.box',
hoverClass: 'hover',
tolerance: 'fit',
drop: function(event, ui){
ui.draggable.clone().appendTo(this);
console.log('dropped!');
}
});
});
jQuery Draggable
jQuery UIのHPより、ひな形をダウンロードします。
jQueryUI
draggableは以下のように書きます。
$(function(){
$(‘#hoge’).draggable();
});
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="jquery-ui.min.css">
<script src="./external/jquery/jquery.js"></script>
<script src="jquery-ui.min.js"></script>
<style>
#box {
width: 100px;
height: 100px;
background: green;
}
</style>
</head>
<body>
<div id="box">box</div>
<script>
$(function(){
$('#box').draggable();
});
</script>
</body>
</html>
設定、イベント
$(function(){
$('#box').draggable({
// axis: 'x'
opacity: 0.5,
// handle: '.handle'
drag: function(event, ui){
console.log(ui.position);
}
});
});
jQuery plug-in 作成
jQueryのプラグイン作成に、fn.extend()を使います。
jQuery.fn.extend():Merge the contents of an object onto the jQuery prototype to provide new jQuery instance methods.
https://api.jquery.com/jquery.fn.extend/
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jQuery plugin</title>
</head>
<body>
<p><img src="image01.jpg"></p>
<p><img src="image02.jpg"></p>
<p><img src="image03.jpg"></p>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="jquery.showsize.js"></script>
<script>
$(function(){
$('img').showsize({
size: 22,
opacity: 0.9
});
});
</script>
</body>
</html>
;(function($){
$.fn.showsize = function(options){
var elements = this;
elements.each(function(){
var opts = $.extend({}, $.fn.showsize.defaults, options, $(this).data());
$(this).click(function(){
var msg = $(this).width() + ' x ' + $(this).height();
$(this).wrap('<div style="position:relative;"></div>');
var div = $('<div>')
.text(msg)
.css('position', 'absolute')
.css('top', '0')
.css('padding', '2px')
.css('background', getRandomColor())
.css('font-size', opts.size +'px')
.css('color','white')
.css('opacity',opts.opacity);
$(this).after(div);
});
});
return this;
};
function getRandomColor(){
var colors = ['red', 'pink', 'orange', 'green', 'blue'];
return colors[Math.floor(Math.random()* colors.length)];
}
$.fn.showsize.defaults = {
size: 10,
opacity: 0.8
};
})(jQuery);
jQuery mobile demo
リフェレンス:http://api.jquerymobile.com/data-attribute/
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>D3.js</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
<div data-role="page" id="home">
<div data-role="header" data-position="fixed">
<a href="#menu" data-icon="gear">左</a>
<h1>ホーム</h1>
<a href="#menu" data-icon="check" class="ui-btn-right">右</a>
</div>
<div data-role="content">
<p>こんにちは!</p>
<p><a href="#home" data-role="button">ホーム</a></p>
<p><a href="#menu" data-role="button" data-theme="b">メニュー</a></p>
<div data-role="content">
<ul data-role="listview" data-filter="true">
<li data-role="list-divider">日本語</li>
<li><a href="#menu">赤いページ<span class="ui-li-count">23</span></a></li>
<li><a href="#menu">青いページ</a></li>
<li><a href="#menu">黄色いページ</a></li>
<li data-role="list-divider">英語</li>
<li><a href="#menu">Red<span class="ui-li-count">23</span></a></li>
<li><a href="#menu">Blue</a></li>
<li><a href="#menu">Yellow</a></li>
</ul>
</div>
<form action="mail.php" method="post">
<div data-role="fieldcontain">
<label for="name">お名前</label>
<input type="text" name="name" id="name" value="">
</div>
<div data-role="fieldcontain">
<label for="keywords">検索</label>
<input type="search" name="keywords" id="keywords" value="">
</div>
<div data-role="fieldcontain">
<label for="amount">数量</label>
<input type="range" name="amount" id="amount" min="0" max="100" value="">
</div>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend>色</legend>
<input type="checkbox" name="color_1" id="color_1">
<label for="color_1">赤</label>
<input type="checkbox" name="color_2" id="color_2">
<label for="color_2">青</label>
<input type="checkbox" name="color_3" id="color_3">
<label for="color_3">黄</label>
</fieldset>
</div>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend>色</legend>
<input type="radio" name="color" value="1" id="1" checked="checked">
<label for="1">赤</label>
<input type="radio" name="color" value="2" id="2">
<label for="2">青</label>
<input type="radio" name="color" value="3" id="3">
<label for="3">黄</label>
</fieldset>
</div>
<div data-role="fieldcontain">
<label for="color">色</label>
<select name="color" id="color" data-native-menu="false" multiple="">
<option value="1">赤</option>
<option value="2" selected>青</option>
<option value="3">黄</option>
</select>
</div>
<input type="submit" value="送信!">
</form>
</div>
<div data-role="footer" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="#menu" class="ui-btn-active">メニュー1</a></li>
<li><a href="#menu">メニュー2</a></li>
<li><a href="#menu">メニュー3</a></li>
</ul>
</div>
</div>
</div>
<div data-role="page" id="menu" data-add-back-btn="true">
<div data-role="header">
<h1>メニュー</h1>
</div>
<div data-role="content">
<p>こんにちは!</p>
<p><a href="#home">ホーム</a></p>
<p><a href="#menu">メニュー</a></p>
</div>
<div data-role="footer" class="ui-bar">
<a href="#menu" data-icon="plus">追加</a>
<a href="#menu" data-icon="delete">削除</a>
<h4>copyright 2016</h4>
</div>
</div>
</body>
</html>
jQuery mobile data-attribute
data-attribute: http://api.jquerymobile.com/data-attribute/
slideup
<div data-role="content">
<p>こんにちは!</p>
<p><a href="#home">ホーム</a></p>
<p><a href="#menu" data-transition="slideup">メニュー</a></p>
</div>
ボタン:icon(http://api.jquerymobile.com/icons/)
<div data-role="controlgroup" data-type="horizontal">
<p><a href="#menu" data-role="button" data-icon="gear" data-inline="true">
メニュー</a></p>
<p><a href="#menu" data-role="button" data-icon="gear" data-inline="true">
メニュー</a></p>
<p><a href="#menu" data-role="button" data-icon="gear" data-inline="true">
メニュー</a></p>
</div>
theme(http://api.jquerymobile.com/theme/)
<div data-role="content">
<p>こんにちは!</p>
<p><a href="#home" data-role="button">ホーム</a></p>
<p><a href="#menu" data-role="button" data-theme="b">メニュー</a></p>
</div>
header button
<div data-role="content">
<p>こんにちは!</p>
<p><a href="#home" data-role="button">ホーム</a></p>
<p><a href="#menu" data-role="button" data-theme="b">メニュー</a></p>
</div>
footer
<div data-role="footer" class="ui-bar">
<div data-role="controlgroup" data-type="horizontal">
<a href="#menu" data-icon="plus">追加</a>
<a href="#menu" data-icon="delete">削除</a>
</div>
</div>
フッター、ヘッダーナビゲーション
<div data-role="footer">
<div data-role="navbar">
<ul>
<li><a href="#menu" class="ui-btn-active">メニュー1</a></li>
<li><a href="#menu">メニュー2</a></li>
<li><a href="#menu">メニュー3</a></li>
</ul>
</div>
</div>
ヘッダー、フッター固定
<div data-role="header" data-position="fixed"> <div data-role="footer" data-position="fixed">
form, 検索、スライダー
<form action="mail.php" method="post">
<div data-role="fieldcontain">
<label for="name">お名前</label>
<input type="text" name="name" id="name" value="">
</div>
<input type="submit" value="送信!">
</form>
<div data-role="fieldcontain">
<label for="keywords">検索</label>
<input type="search" name="keywords" id="keywords" value="">
</div>
<div data-role="fieldcontain">
<label for="amount">数量</label>
<input type="range" name="amount" id="amount" min="0" max="100" value="">
</div>