GoogleImgSearch UI

$(window).load(function(){flickr();setTimeout(function(){listAdjust();},200); SyntaxHighlighter.all(); }); // for IE8
$(window).resize(function(){listAdjust();}).resize();
	
function flickr() {
    $.getJSON('https://api.flickr.com/services/rest/?format=json&jsoncallback=?', {
//この部分は必ずご自身のapi_keyと入れ替えてください。       "api_key": "2a05b6c699c389659c467768e7e03439", 
	"api_key": "cc33804f6624eaea05252740e5972e95",
        "method": "flickr.photos.search", //写真検索
        "text": "Bar+Refaeli", //検索語
        "sort": "relevance", //並べ替え relevanceは関連度の高い順
        "extras": "url_m", //写真サイズ
        "per_page": 60, //取得件数
        "page": 1, //ページ番号
    }).done(function(data) {
		var html = '';
		var photo = '';
        for (var i = 0; i < data.photos.photo.length; i++) {
            var f = data.photos.photo[i];
			html += '<li><img class="thumb" src="' + f["url_m"] + '" title="' + f["title"] + '" /><div class="selfRep"><div class="selfRepInner"><div class="secLeft"><img class="image" src="' + f["url_m"] + '" /></div><div class="secRight"><p>' + f["title"] + '</p></div></div></div></li>';
		}
		$('.listCover').html(html);
		$('.selfRep').hide();
		
	var setList = $('.listCover'),
	setItem = $('li'),
	setReplace = $('.selfRep'),
	listBaseWidth = 130,
	thumbOpacity = 0.8,
	expandHeight = 450,
	expandFadeTime = 300,
	expandEasing = 'linear',
	switchFadeTime = 1000,
	switchEasing = 'linear';

	setList.each(function(){
		var targetObj = $(this);

		var findItem = targetObj.find(setItem),
		findElm = targetObj.find(setReplace);

		// リストアイテムクリック
		findItem.click(function(){
			if($(this).hasClass('active')){
				closeExpandActive = targetObj.find('.expandField');
				closeExpandActive.stop().animate({height:'0',opacity:'0'},expandFadeTime,expandEasing,function(){
					closeExpandActive.remove();
				});
				findItem.removeClass('active');
			} else {
				var setExpand = $('.expandField'),
				findExpand = targetObj.find(setExpand),
				thisElm = $(this).find(setReplace).html();

				// 展開ボックス制御
				if(0 < findExpand.size()){
					findExpand.empty().html(thisElm);
					$(this).after(findExpand).next().append('<span class="btnPrev"></span><span class="btnNext"></span><span class="btnClose"></span>');
					var setReplaceInner = $('.selfRepInner'),
					findInner = targetObj.find(setReplaceInner);
					findInner.css({opacity:'0'}).stop().animate({opacity:'1'},switchFadeTime,switchEasing);
				} else {
					$(this).after('<li class="expandField">' + thisElm + '</li>').next().css({height:'0', opacity:'0'}).stop().animate({height:expandHeight, opacity:'1'},expandFadeTime,expandEasing).append('<span class="btnPrev"></span><span class="btnNext"></span><span class="btnClose"></span>');
				}

				// スクロール位置調整
				var thisOffset = $(this).find('img').offset();
				$('html,body').animate({scrollTop:(thisOffset.top-10)},200,'linear');

				// 操作ボタン動作
				function switchNext(){
					var setActiveN = targetObj.find('.active');
					setActiveN.each(function(){
						var listLenghN = findItem.length,
						listIndexN = findItem.index(this),
						listCountN = listIndexN+1,
						findItemFirst = findItem.first();

						if(listLenghN == listCountN){
							findItemFirst.click();
						} else {
							$(this).next().next().click();
						}
					});
				}
				function switchPrev(){
					var setActiveP = targetObj.find('.active');
					setActiveP.each(function(){
						var listLenghP = findItem.length,
						listIndexP = findItem.index(this),
						listCountP = listIndexP+1,
						findItemLast = findItem.last();

						if(1 == listCountP){
							findItemLast.click();
						} else {
							$(this).prev().click();
						}
					});
				}
				function switchHide(){
					closeExpand = targetObj.find('.expandField');
					closeExpand.stop().animate({height:'0',opacity:'0'},expandFadeTime,expandEasing,function(){
						closeExpand.remove();
					});
					findItem.removeClass('active');
				}

				$(this).addClass('active').siblings().removeClass('active');

				var btnPrev = targetObj.find('.btnPrev'),btnNext = targetObj.find('.btnNext'),btnClose = targetObj.find('.btnClose');
				btnPrev.click(function(){switchPrev();});
				btnNext.click(function(){switchNext();});
				btnClose.click(function(){switchHide();});

			}
		});

		// サムネイルロールオーバー
		var agent = navigator.userAgent;
		if(!(agent.search(/iPhone/) != -1 || agent.search(/iPad/) != -1 || agent.search(/iPod/) != -1 || agent.search(/Android/) != -1)){
			findItem.hover(function(){
				$(this).stop().animate({opacity:thumbOpacity},200);
			},function(){
				$(this).stop().animate({opacity:'1'},200);
			});
		}

		// リキッド操作
		function listAdjust(){
			var ulWrap = targetObj.width(),
			ulNum = Math.floor(ulWrap / listBaseWidth),
			liFixed = Math.floor(ulWrap / ulNum);
			findItem.css({width: (liFixed)});
		}
	});
	});
}		
			
<ul class="listCover"></ul><!--/.listCover-->
			
ページトップへ戻る