- 追加された行はこの色です。
- 削除された行はこの色です。
<link rel="stylesheet" type="text/css" media="screen" href="http://maplia.jp/script/tablesorter/theme/style.css" charset="Shift_JIS" />
<style type="text/css">
tbody tr th {
padding: 0 5px;
}
tbody tr td.number {
text-align: center;
}
tbody tr td.mark {
text-align: center;
}
tbody tr td.text {
text-align: left;
}
tbody tr.bsc td {
background-color: #ccffcc;
}
tbody tr.adv td {
background-color: #ffffcc;
}
tbody tr.ext td {
background-color: #ffcccc;
}
</style>
<script type="text/javascript" src="http://maplia.jp/script/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="http://maplia.jp/script/jquery.json2table.js"></script>
<script type="text/javascript">
var musics;
var table;
var level_min = 0;
var level_max = 99;
var level_delta = 10;
var notes_min = 0;
var notes_max = 899;
var notes_delta = 100;
$(document).ready(function() {
$.getJSON('http://cxbrank.maplia.jp/api/musics?callback=?', function(data) {
musics = data;
table = $('#table_musics');
select_level = $('#select_level');
select_level.append($('<option/>', {
value: -1, text: 'すべて'
}));
for (var i = level_min; i < level_max; i += level_delta) {
select_level.append($('<option/>', {
value: i, text: i + '~' + (i + level_delta - 1)
}));
}
select_notes = $('#select_notes');
select_notes.append($('<option/>', {
value: -1, text: 'すべて'
}));
for (var i = notes_min; i < notes_max; i += notes_delta) {
select_notes.append($('<option/>', {
value: i, text: i + '~' + (i + notes_delta - 1)
}));
}
createMusicTable();
if ($(':text[name="filter"]').val() != undefined) {
filterMusicTable($(':text[name="filter"]').val());
} else {
filterMusicTable(0);
}
filterMusicTable();
});
});
function createMusicTable() {
var table_data = {};
table_data.thead_column_classes = [
'style_th', 'style_th', 'style_th', 'style_th', 'style_th'
];
table_data.tbody_column_classes = [
'style_th', 'text', 'mark', 'number', 'number'
];
table_data.thead = [];
table_data.tbody = [];
table_data.thead[0] = {
values: ['#', 'タイトル', '難易度', 'レベル', 'ノート数']
};
$.each(musics, function(i, music) {
table_data.tbody[table_data.tbody.length] = {
id: music.text_id + '_bsc',
class_name: 'bsc',
values: [
music.number, music.title, 'STD',
new Number(music.bsc.level).toFixed(1), music.bsc.notes
]
};
table_data.tbody[table_data.tbody.length] = {
id: music.text_id + '_adv',
class_name: 'adv',
values: [
music.number, music.title, 'HRD',
new Number(music.adv.level).toFixed(1), music.adv.notes
]
};
table_data.tbody[table_data.tbody.length] = {
id: music.text_id + '_ext',
class_name: 'ext',
values: [
music.number, music.title, 'MAS',
new Number(music.ext.level).toFixed(1), music.ext.notes
]
};
});
table.json2table(table_data);
table.tablesorter({sortList: [[3, 1]]});
}
function filterMusicTable(diff) {
function filterMusicTable() {
diff = parseInt($(':radio[name="diff"]:checked').val());
level = parseInt($('select[name="level"]').val());
notes = parseInt($('select[name="notes"]').val());
$.each(musics, function (i, music) {
if ((diff == 0) || (diff == 1)) {
$('#' + music.text_id + '_bsc').show();
} else {
$('#' + music.text_id + '_bsc').hide();
}
if ((diff == 0) || (diff == 2)) {
$('#' + music.text_id + '_adv').show();
} else {
$('#' + music.text_id + '_adv').hide();
}
if ((diff == 0) || (diff == 3)) {
$('#' + music.text_id + '_ext').show();
} else {
$('#' + music.text_id + '_ext').hide();
}
if (level != -1) {
if ((music.bsc.level < level) || (music.bsc.level >= level + level_delta)) {
$('#' + music.text_id + '_bsc').hide();
}
if ((music.adv.level < level) || (music.adv.level >= level + level_delta)) {
$('#' + music.text_id + '_adv').hide();
}
if ((music.ext.level < level) || (music.ext.level >= level + level_delta)) {
$('#' + music.text_id + '_ext').hide();
}
}
if (notes != -1) {
if ((music.bsc.notes < notes) || (music.bsc.notes >= notes + notes_delta)) {
$('#' + music.text_id + '_bsc').hide();
}
if ((music.adv.notes < notes) || (music.adv.notes >= notes + notes_delta)) {
$('#' + music.text_id + '_adv').hide();
}
if ((music.ext.notes < notes) || (music.ext.notes >= notes + notes_delta)) {
$('#' + music.text_id + '_ext').hide();
}
}
});
}
</script>
<p>
難易度フィルター:
<label><input type="radio" name="filter" onchange="filterMusicTable(0)" checked="checked"> 全譜面</label>
<label><input type="radio" name="filter" onchange="filterMusicTable(1)"> STANDARD</label>
<label><input type="radio" name="filter" onchange="filterMusicTable(2)"> HARD</label>
<label><input type="radio" name="filter" onchange="filterMusicTable(3)"> MASTER</label>
<label><input type="radio" name="diff" value="0" onchange="filterMusicTable()" checked="checked"> 全譜面</label>
<label><input type="radio" name="diff" value="1" onchange="filterMusicTable()"> STANDARD</label>
<label><input type="radio" name="diff" value="2" onchange="filterMusicTable()"> HARD</label>
<label><input type="radio" name="diff" value="3" onchange="filterMusicTable()"> MASTER</label>
</p>
<p>
レベルフィルター: <select id="select_level" name="level" onchange="filterMusicTable()"></select>
/
ノート数フィルター: <select id="select_notes" name="notes" onchange="filterMusicTable()"/></select>
</p>
<table id="table_musics" class="tablesorter style_table" cellspacing="1" border="0"></table>