-
Notifications
You must be signed in to change notification settings - Fork 0
jquery_in_depth_5
paul edited this page May 16, 2017
·
1 revision
๋ค์ ์นด์นด์ค์ ์ด๋ฏธ์ง ๊ฒ์ API๋ฅผ ์ด์ฉํด ์ด๋ฏธ์ง ๋ทฐ์ด๋ฅผ ๋ง๋ ๋ค.
์ด ์์ ๋ ๋ถํธ์คํธ๋ฉ๊ณผ jQuery๋ฅผ ๊ฒฐํฉํด ๊ตฌํํ๋ค.
๋ค์ ๊ฐ๋ฐ์ ์ผํฐ ๋ค์ ๊ฐ๋ฐ์ ์ผํฐ - ์ด๋ฏธ์ง ๊ฒ์
- bootstrap : ์น ๊ฐ๋ฐ์ฉ ํ๋ก ํธ์ค๋ ํ๋ ์์ํฌ์ด๋ค. ๋ค์ํ UI ์ปดํฌ๋ํธ์ ํ ๋ง, ํ ํ๋ฆฟ๋ฑ์ ์ ๊ณตํ๋ค.
- bootstrap lightbox : bootstrap ๋ผ์ดํธ๋ฐ์ค ํ๋ฌ๊ทธ์ธ

<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>์ด๋ฏธ์ง ๋ทฐ์ด ์์ </title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/ekko-lightbox.min.css">
<style>
body { padding-top: 70px; }
.portfolio-item { margin-bottom: 25px; }
footer { margin: 50px 0; }
</style>
<script src="js/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/ekko-lightbox.min.js"></script>
<script src="https://www.jsviews.com/download/jsrender.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var url = "https://apis.daum.net/search/image?callback=?";
var param = {
pageno:1, result:20, output:"json", sort : "accu",
apikey : "14fcbd665c07cb9e546f5bb2df6d0883"
};
//๊ฒ์์ฉ ํจ์: JSONP ๊ธฐ๋ฒ ์ด์ฉ
var searchImages= function() {
$.getJSON(url, param, function(data) {
var tmpl = $.templates("#image_template");
var str = tmpl.render(data.channel.item);
$("#imagelist").append(str);
});
};
//๋ค์ 20๊ฐ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํด๋ฆญํ์ ๋์ ์ด๋ฒคํธ ์ฒ๋ฆฌ
$("#getNext").on("click", function() {
param.pageno++;
searchImages();
});
//'๊ฒ์' ๋ฒํผ์ ํด๋ฆญํ์ ๋์ ์ด๋ฒคํธ ์ฒ๋ฆฌ
$("#inquery").on("click", function() {
$("#imagelist").empty();
param.pageno = 1;
param.q = $("#keyword").val();
searchImages();
});
//๊ฒ์์ด ์
๋ ฅ์ ์ํ ํ
์คํธ๋ฐ์ค์์ ์ํฐํค๋ฅผ ๋๋ ์ ๋๋ ๊ฒ์์ด ๊ฐ๋ฅํ๋๋ก ํจ.
$("#keyword").on("keyup", function(e) {
if (e.keyCode == 13) {
$("#inquery").trigger("click");
}
});
//์ด๋ฒคํธ ์์ ์ฒ๋ฆฌ๋ฅผ ํตํด ๊ฒ์๋ ์ธ๋ค์ผ ์ด๋ฏธ์ง๋ฅผ ํด๋ฆญํ์ ๋ ๋ผ์ดํธ๋ฐ์ค ์ฒ๋ฆฌ
$("#imagelist").on("click", "div.portfolio-item a", function(e) {
e.preventDefault();
$(this).ekkoLightbox();
});
});
</script>
<script id="image_template" type="text/x-jsrender">
<div class="col-md-2 portfolio-item">
<a data-toggle="lightbox" data-gallery="multis"
data-title="{{:title}}" href="{{:image}}">
<img class="img-responsive" src="{{:thumbnail}}" alt="{{:title}}">
</a>
</div>
</script>
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle"
data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">์ด๋ฏธ์ง ๊ฒ์</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li>
<a href="https://developers.daum.net/services/apis/search/image">
DAUM ์ด๋ฏธ์ง ๊ฒ์ ํ์ด์ง</a>
</li>
<li>
<a href="https://developers.daum.net/">
DAUM Developers Center</a>
</li>
<li>
<a href="https://en.wikipedia.org/wiki/JSONP">JSONP Wiki</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- Page Content -->
<div class="container">
<div class="row">
<div id="navbar" class="navbar-collapse navbar-form navbar-left">
<div class="form-group col-lg-12">
<input id="keyword" type="text" placeholder="๊ฒ์์ด" class="form-control">
<button id="inquery" class="btn btn-success form-control">๊ฒ ์</button>
</div>
</div>
</div>
<div id="imagelist" class="row">
</div>
<footer>
<div class="row">
<div class="navbar-collapse navbar-form navbar-left">
<div class="form-group col-lg-12">
<button type="submit" id="getNext" class="btn btn-primary">
๋ค์ 20๊ฐ ๊ฐ์ ธ์ค๊ธฐ</button>
</div>
</div>
</div>
</footer>
</div>
</body>
</html>