// JavaScript Document
var setID = "feed"; //表示させる箇所のID
var listNum = 10;//最大表示件数
var animFlag = false;//アニメーション用フラグ(全て読み込み完了かどうか)
var delaySpeed=150; /*読み込みの遅延速度*/
var fadeSpeed=500; /*表示時のアニメーション(フェード)時間*/
$(function() {
$.getJSON("/clouds/" , ittemiaCallback);
// $.getJSON("/wp-content/themes/top/clouds.php?rs=1" , ittemiaCallback2);//最近の実績専用
});
//データ読み込み時のコールバック関数
function ittemiaCallback(obj) {
if(obj == null) {
if(_isDebug>0) {
alert('引数が不正です。');
}
return;
}
var
//ulObj = $("#demo"),
len = obj.length;
/*
for(var i = 0; i < len; i++) {
//ulObj.append($("
").attr({"id":data[i].id}).text(data[i].name));
var date_str = String(obj[i].pubDate).replace(/[-|:| ]/g,',');
var date = new Date(date_str);
obj[i].sortDate = ( date.getFullYear()*10000 ) + ( (date.getMonth() + 1)*100 ) + date.getDate();
}
//日付でソート
asort(obj, "sortDate")
*/
feedOutput(obj);
}
//データ読み込み時のコールバック関数(最近の実績)
function ittemiaCallback2(obj) {
if(obj == null) {
if(_isDebug>0) {
alert('引数が不正です。');
}
return;
}
feedOutput2(obj);
}
// 出力
function feedOutput(entryArray){
//今日の日付から30日前の日付を取得
var compareDate = computeDate(new Date(),-30);
if(listNum > entryArray.length) listNum = entryArray.length;
//雲の座標配列
var xy_array = [[0,0],[220,0],[440,0],[660,0],[0,110],[220,110],[440,110],[660,110],[880,110],[880,0]];
// 配列の中身をランダムに並び替える
xy_array.sort(
function() {
return Math.random() - 0.5;
}
);
var useFeed = '';
var container = document.getElementById(setID);
for (var l = 0; l < listNum; l++) {
var entry = entryArray[l];
var title = entry.title; //記事タイトル取得
//35文字以上は省略
if(title.length > 35){
title = title.substr(0,35)+'...';
}
var blogname = entry.blogtitle;
//ブログ名でクラス振り分け
if(blogname == 'メンバー紹介') var cls = 'member';
if(blogname == '社長日記') var cls = 'president';
if(blogname == '今日のおかし') var cls = 'okashi';
// if(blogname == 'リレー小説') var cls = 'novel';
if(blogname == 'ミムログ') var cls = 'mimulog';
if(blogname == 'Today\'s COMBRIDGE') var cls = 'mimubridge';
if(blogname == 'サービス紹介') var cls = 'service';
// if(blogname == 'ランニング同好会') var cls = 'yotsuya';
// if(blogname == 'TadaimaJapan更新情報') var cls = 'tadaima';
if(blogname == 'そこに山と滝があるから') var cls = 'contents-a';
if(blogname == 'イベント屋さんの道具箱') var cls = 'contents-c';
//xyをちょっとだけランダムにする
var dy = xy_array[l][1] + Math.floor(Math.random()*20 - 10);
var dx = xy_array[l][0] + Math.floor(Math.random()*10 - 5);
var link = entry.link; //記事のリンクを取得
//日付を取得し年月日を整形
var publishedDate = entry.pubDate.split("-").join("/");
//var date_str = String(obj[i].pubDate).replace(/[-|:| ]/g,',');
var pubDD = new Date(publishedDate);
//14日前の日付より古いものは表示しない
if(compareDate < pubDD) {
yy = pubDD.getYear();if (yy < 2000) { yy += 1900; } mm = pubDD.getMonth() + 1;dd = pubDD.getDate();
var pubDate = yy +'.'+ mm +'.'+ dd;
if(blogname == 'リレー小説') {
useFeed += '';
}else if(blogname != '社長日記') { //2017.6.30非表示
useFeed += '';
}
//$('#feed').append(useFeedObj);
}
}
// container.innerHTML = useFeed;
$("#"+setID).append(useFeed);
$('#'+setID).children().each(function(index, element) {
$(this).css({display:'block',opacity:'0'});
});
//if(animFlag) {
$('#'+setID).children().each(function(index, element) {
$(this).delay(index*(delaySpeed)).css({display:'block',opacity:'0'}).animate({opacity:'1'},fadeSpeed);
});
setTimeout('rect()'); //アニメーションを実行
/*
}else{
animFlag = true;
}
*/
}
/*雲のループアニメーション*/
function rect() {
$('.cloud').animate({
marginTop: '-=5px'
}, 1400).animate({
marginTop: '+=5px'
}, 1400);
setTimeout('rect()', 2800); //アニメーションを繰り返す間隔
}
// 出力(最近の実績専用
function feedOutput2(entryArray){
//雲の座標配列
var xy_array = [[880,0]];
var useFeed = '';
var container = document.getElementById(setID);
for (var l = 0; l < 1; l++) {
var entry = entryArray[l];
var title = entry.title; //記事タイトル取得
//35文字以上は省略
if(title.length > 35){
title = title.substr(0,35)+'...';
}
var blogname = entry.blogtitle;
//ブログ名でクラス振り分け
if(blogname == 'サービス紹介') var cls = 'service';
var blogname = entry.blogtitle;
//xyをちょっとだけランダムにする
var dy = xy_array[l][1] + Math.floor(Math.random()*20 - 10);
var dx = xy_array[l][0] + Math.floor(Math.random()*10 - 5);
var link = entry.link; //記事のリンクを取得
//日付を取得し年月日を整形
var publishedDate = entry.pubDate;
var pubDD = new Date(publishedDate);
yy = pubDD.getYear();if (yy < 2000) { yy += 1900; } mm = pubDD.getMonth() + 1;dd = pubDD.getDate();
var pubDate = yy +'.'+ mm +'.'+ dd;
useFeed += '';
}
$("#"+setID).append(useFeed);
$('#'+setID).children().each(function(index, element) {
$(this).css({display:'block',opacity:'0'});
});
if(animFlag) {
$('#'+setID).children().each(function(index, element) {
$(this).delay(index*(delaySpeed)).css({display:'block',opacity:'0'}).animate({opacity:'1'},fadeSpeed);
});
setTimeout('rect()'); //アニメーションを実行
}else{
animFlag = true;
}
}
// ソート関数
function asort(myArray, key){
//return myArray.sort ( function (b1, b2) { return b1[key] > b2[key] ? 1 : -1; } );//昇順
return myArray.sort ( function (b1, b2) { return b1[key] > b2[key] ? -1 : 1; } );//降順
}
//n日後、n日前の日付を求める
/**
* 年月日と加算日からn日後、n日前を求める関数
* year 年
* month 月
* day 日
* addDays 加算日。マイナス指定でn日前も設定可能
*/
function computeDate(dt, addDays) {
// var dt = new Date(year, month - 1, day);
var baseSec = dt.getTime();
var addSec = addDays * 86400000;//日数 * 1日のミリ秒数
var targetSec = baseSec + addSec;
dt.setTime(targetSec);
return dt;
}