(function ($) {
$.ajax({
url: 'https://cms.atlus.co.jp/pch/get_tweet.php',
success: function(response) {
var tweets = response,
$tweetList = $('.tweet-list'),
html = [],
i, length;
for (i = 0, length = tweets.length; i < length; i++) {
html.push([
'
',
'' + tweets[i].text + '',
''
].join(''))
}
$tweetList.html(html.join(''));
var animationObject = [],
currentIndex = 0;
$tweetList.find('li').each(function(index, element) {
var $element = $(element),
$a = $element.find('a'),
width = $a.width();
animationObject.push({
$element: $element,
$child: $a,
width: width,
diff: $element.width() - width - 25,
index: index
});
});
runAnimation(animationObject[currentIndex]);
function runAnimation(item) {
(function() {
var deferred = $.Deferred();
item.$element.one('animationend webkitAnimationEnd oanimationend MSAnimationEnd', function() {
deferred.resolve();
});
item.$element.css('z-index', 1).addClass('fadeInDown').addClass('run');
return deferred.promise();
})().then(function() {
var deferred = $.Deferred();
setTimeout(function() {
deferred.resolve();
}, 1000);
return deferred.promise();
}).then(function() {
var deferred = $.Deferred();
if (item.diff > 0) {
deferred.resolve();
return deferred.promise();
}
item.$child.one('oTransitionEnd mozTransitionEnd webkitTransitionEnd transitionend', function() {
deferred.resolve();
});
item.$child.css({
transform: 'translate3d(' + item.diff + 'px, 0, 0)',
'transition-duration': Math.abs(item.diff / 100) + 's'
});
return deferred.promise();
}).then(function() {
var deferred = $.Deferred();
setTimeout(function() {
deferred.resolve();
}, 5000);
return deferred.promise();
}).then(function() {
var deferred = $.Deferred();
item.$element.one('animationend webkitAnimationEnd oanimationend MSAnimationEnd', function() {
deferred.resolve();
});
item.$element.addClass('fadeOutDown').addClass('run');
return deferred.promise();
}).then(function() {
item.$element.css('z-index', 0).removeClass('run fadeInDown fadeOutDown');
item.$child.css('transform', 'none');
currentIndex++;
if (currentIndex === animationObject.length) {
currentIndex = 0;
}
runAnimation(animationObject[currentIndex]);
});
}
}
});
const mediaQuery = window.matchMedia('(max-width: 640px)');
// calendar
$.ajax({
url: '/wp-content/calendar.json',
dataType: 'json',
success: function (data) {
var items = data.items,
pcHtml = [],
item;
var calendarRange = 4;
if (mediaQuery.matches) {
calendarRange = 3;
}
var $topCalendar = $('.top-calendar');
var date = new Date();
date.setDate(date.getDate() - calendarRange);
// var nowYear = today.getFullYear();
// var nowMonth = today.getMonth() + 1;
// var nowDate = today.getDate();
const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
const dayOfWeek = ['【日】', '【月】', '【火】', '【水】', '【木】', '【金】', '【土】'];
var $calendars = $topCalendar.find('li');
const startCalendarIndex = 4;
if (mediaQuery.matches) {
// $($calendars[0]).addClass('disable');
// $($calendars[6]).addClass('disable');
// startCalendarIndex = 3;
}
var monthLabel = '';
for (var i = -calendarRange; i < calendarRange; i++) {
const targetLi = $($calendars[startCalendarIndex + i]);
const targetA = $(targetLi.find('a'));
const monthStr = ('0' + (date.getMonth()+1)).slice(-2);
const dateStr = ('0' + date.getDate()).slice(-2);
const formatDate = `${date.getFullYear()}/${monthStr}/${dateStr}`;
targetA.append(`${dateStr}${dayOfWeek[date.getDay()]}
`);
// 月 最初の日付にはラベルをつけない
if (i !== -calendarRange && monthLabel !== monthStr) {
monthLabel = monthStr;
targetLi.append(`${monthLabel}${months[date.getMonth()].toUpperCase()}
`);
}
if (formatDate in items) {
console.log(targetA);
if (items[formatDate].url !== '') {
targetA.attr('href', items[formatDate].url);
}
if (items[formatDate].image) {
targetLi.css('background-image',`url(${items[formatDate].image})`);
}
if (items[formatDate].text !== '') {
targetA.append(`${items[formatDate].text}
`);
}
}
date.setDate(date.getDate() + 1);
}
function lowerThanDateOnly(date1, date2) {
console.log('in');
var year1 = date1.getFullYear();
var month1 = date1.getMonth() + 1;
var day1 = date1.getDate();
var year2 = date2.getFullYear();
var month2= date2.getMonth() + 1;
var day2 = date2.getDate();
if (year1 == year2) {
if (month1 == month2) {
return day1 < day2;
}
else {
return month1 < month2;
}
} else {
return year1 < year2;
}
}
// footer付近までスクロールしたら定位置に固定
setTimeout(() => {
$('.top-calendar').waypoint({
handler: () => {
$($topCalendar.find('ul')[0]).addClass('visible');
Cookies.set('animated', new Date().getTime(), {
expires: 1,
});
setTimeout(() => {
$($topCalendar.find('ul')[0]).addClass('slide');
},1000);
},
offset: '80%',
});
}, 200);
// const cookieDate = Cookies.get('animated');
// if (!cookieDate ||
// (cookieDate && lowerThanDateOnly(new Date(Number(cookieDate)), new Date()))) {
// setTimeout(() => {
// $($topCalendar.find('ul')[0]).addClass('visible');
// Cookies.set('animated', new Date().getTime(), {
// expires: 1,
// });
// }, 1000);
// } else {
// $($topCalendar.find('ul')[0]).addClass('animated');
// }
}
})
$('[data-fancybox]').fancybox({
infobar: false,
toolbar: true,
buttons: [
'close'
],
arrows: false,
touch: true,
loop: true,
hash: false,
animationEffect: 'fade',
idleTime: 0
});
})(jQuery);