반응형

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Flick Navigation</title>

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi" />


<style type="text/css">


/* Basic Style START (dohoons, 200803, 200908, 201011, 201106) */

html, body { height:100%; -webkit-text-size-adjust:none; }

body, input, select, button, textarea, h1, h2, h3, h4, h5, h6, table { font:normal 12px/1.5 dotum,"돋움",Arial,AppleGothic,Sans-serif; color:#666; }

html, body, div, form, input, select, button, textarea, legend, fieldset, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, blockquote, address, p, th, td, caption { margin:0; padding:0; }

ol, ul, li { list-style:none; }

img, fieldset { border:0 none; }

input, select, textarea { vertical-align:middle; resize:none; position:relative; }

input, textarea { -webkit-appearance:none; -webkit-border-radius:0; }

input[type="checkbox"] { -webkit-appearance:checkbox; }

input[type="radio"] { -webkit-appearance:radio; -webkit-border-radius:10px; }

button { border:0 none; background:transparent; cursor:pointer; }

hr { display:none; }

legend, .hide { width:0; height:0; visibility:hidden; font-size:0; line-height:0; position:absolute; top:0; left:0; overflow:hidden; }

table caption { width:0; height:0; visibility:hidden; text-indent:-9999px; font-size:0; line-height:0; }

table { border-collapse:collapse; border-spacing:0; }

header, footer, section, article, aside, nav, hgroup, details, menu, figure, figcaption { display:block; }


a:link, a:visited { text-decoration:none; color:#666; }

a:active, a:hover, a:focus { text-decoration:underline; }


input.basic { height:19px; line-height:19px; padding:0 5px; border:1px solid #cacaca; *margin-top:-1px; _margin-top:-2px; }

textarea.basic { border:1px solid #cacaca; padding:5px; overflow:scroll; overflow-x:hidden; *margin-top:-1px; _margin-top:-2px; }

select.basic { height:21px; }

/* Basic Style END */


#touchSlider6 { width:100%; height:150px; margin:0 auto; background:#ccc; position:relative; overflow:hidden; }

#touchSlider6 ul { width:99999px; height:150px; position:absolute; top:0; left:0; overflow:hidden; }

#touchSlider6 ul li { float:left; width:100%; height:150px; background:#9C9; font-size:14px; color:#fff; }



.btn_area { background:#f5f5f5; overflow:hidden; }

.btn_area button { display:block; width:100px; height:36px; background:#000; font-size:16px; color:#fff; font-weight:bold; }

.btn_area button.btn_prev { float:left; }

.btn_area button.btn_next { float:right; }

.btn_area .btn_page { display:inline-block; width:10px; height:10px; margin:3px; font-size:0px; line-height:0; text-indent:-9999px; background:#3399CC; }

.btn_area .btn_page.on { background:#ff0000; }



</style>

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>

<script type="text/javascript" src="../js/jquery.event.drag-1.5.min.js"></script>

<script type="text/javascript" src="../js/jquery.touchSlider.js"></script>

<script type="text/javascript">


  $(document).ready(function() {



$("#touchSlider6").touchSlider({


flexible : true,

initComplete : function (e) {

$("#touchSlider6_paging").html("");

var num = 1;

$("#touchSlider6 ul li").each(function (i, el) {

if((i+1) % e._view == 0) {

$("#touchSlider6_paging").append('<button type="button" class="btn_page">page' + (num++) + '</button>');

}

});

$("#touchSlider6_paging .btn_page").bind("click", function (e) {

var i = $(this).index();

$("#touchSlider6").get(0).go_page(i);

});

},

counter : function (e) {

$("#touchSlider6_paging .btn_page").removeClass("on").eq(e.current-1).addClass("on");

}

});


});

</script>


 </head>


 <body>


  <h2>6 : flexible, rolling, paging, counter</h2>

<div id="touchSlider6">

<ul>

<li>

content 1

</li>

<li style="background:#396">

content 2

</li>

<li style="background:#39C">

content 3

</li>

<li style="background:#33C">

content 4

</li>

</ul>

</div>


<div id="touchSlider6_paging" class="btn_area" style="text-align:center;"></div>



 </body>

</html>



jquery.event.drag-1.5.min.js


/* 

jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)  

Liscensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt

*/

(function(E){E.fn.drag=function(L,K,J){if(K){this.bind("dragstart",L)}if(J){this.bind("dragend",J)}return !L?this.trigger("drag"):this.bind("drag",K?K:L)};var A=E.event,B=A.special,F=B.drag={not:":input",distance:0,which:1,dragging:false,setup:function(J){J=E.extend({distance:F.distance,which:F.which,not:F.not},J||{});J.distance=I(J.distance);A.add(this,"mousedown",H,J);if(this.attachEvent){this.attachEvent("ondragstart",D)}},teardown:function(){A.remove(this,"mousedown",H);if(this===F.dragging){F.dragging=F.proxy=false}G(this,true);if(this.detachEvent){this.detachEvent("ondragstart",D)}}};B.dragstart=B.dragend={setup:function(){},teardown:function(){}};function H(L){var K=this,J,M=L.data||{};if(M.elem){K=L.dragTarget=M.elem;L.dragProxy=F.proxy||K;L.cursorOffsetX=M.pageX-M.left;L.cursorOffsetY=M.pageY-M.top;L.offsetX=L.pageX-L.cursorOffsetX;L.offsetY=L.pageY-L.cursorOffsetY}else{if(F.dragging||(M.which>0&&L.which!=M.which)||E(L.target).is(M.not)){return }}switch(L.type){case"mousedown":E.extend(M,E(K).offset(),{elem:K,target:L.target,pageX:L.pageX,pageY:L.pageY});A.add(document,"mousemove mouseup",H,M);G(K,false);F.dragging=null;return false;case !F.dragging&&"mousemove":if(I(L.pageX-M.pageX)+I(L.pageY-M.pageY)<M.distance){break}L.target=M.target;J=C(L,"dragstart",K);if(J!==false){F.dragging=K;F.proxy=L.dragProxy=E(J||K)[0]}case"mousemove":if(F.dragging){J=C(L,"drag",K);if(B.drop){B.drop.allowed=(J!==false);B.drop.handler(L)}if(J!==false){break}L.type="mouseup"}case"mouseup":A.remove(document,"mousemove mouseup",H);if(F.dragging){if(B.drop){B.drop.handler(L)}C(L,"dragend",K)}G(K,true);F.dragging=F.proxy=M.elem=false;break}return true}function C(M,K,L){M.type=K;var J=E.event.handle.call(L,M);return J===false?false:J||M.result}function I(J){return Math.pow(J,2)}function D(){return(F.dragging===false)}function G(K,J){if(!K){return }K.unselectable=J?"off":"on";K.onselectstart=function(){return J};if(K.style){K.style.MozUserSelect=J?"":"none"}}})(jQuery);



jquery.touchSlider.js


/**

 * @name jQuery.touchSlider

 * @author dohoons ( http://dohoons.com/ )

 *

 * @version 201504

 * @since 201106

 *

 * @param Object settings 환경변수 오브젝트

 * roll - 순환 (default true)

 * flexible - 유동 레이아웃 (default false)

 * view - 다중 컬럼 (default 1)

 * speed - 애니메이션 속도 (default 75)

 * range - 넘김 판정 범위 (default 0.15)

 * page - 초기 페이지 (default 1)

 * transition - CSS3 transition 사용 (default true)

 * btn_prev - prev 버튼 (jQuery Object, default null)

 * btn_next - next 버튼 (jQuery Object, default null)

 * paging - page 버튼 (jQuery Object, default null)

 * initComplete - 초기화 콜백

 * counter - 슬라이드 콜백, 카운터

 *

 * @example

 

$("#target").touchSlider({

flexible : true

});


*/


(function ($) {

$.fn.touchSlider = function (settings) {

settings.supportsCssTransitions = (function (style) {

var prefixes = ['Webkit','Moz','Ms'];

for(var i=0, l=prefixes.length; i < l; i++ ) {

if( typeof style[prefixes[i] + 'Transition'] !== 'undefined') {

return true;

}

}

return false;

})(document.createElement('div').style);

settings = jQuery.extend({

roll : true,

flexible : false,

btn_prev : null,

btn_next : null,

paging : null,

speed : 75,

view : 1,

range : 0.15,

page : 1,

transition : true,

initComplete : null,

counter : null

}, settings);

var opts = [];

opts = $.extend({}, $.fn.touchSlider.defaults, settings);

return this.each(function () {

var _this = this;

$.fn.extend(this, touchSlider);

this.opts = opts;

this.init();

$(window).bind("orientationchange resize", function () {

_this.resize(_this);

});

});

};

var touchSlider = {

init : function () {

var _this = this;

this._view = this.opts.view;

this._speed = this.opts.speed;

this._tg = $(this);

this._list = this._tg.children().children();

this._width = parseInt(this._tg.css("width"));

this._item_w = parseInt(this._list.css("width"));

this._len = this._list.length;

this._range = this.opts.range * this._width;

this._pos = [];

this._start = [];

this._startX = 0;

this._startY = 0;

this._left = 0;

this._top = 0;

this._drag = false;

this._scroll = false;

this._btn_prev;

this._btn_next;

$(this)

.unbind("touchstart", this.touchstart)

.unbind("touchmove", this.touchmove)

.unbind("touchend", this.touchend)

.unbind("dragstart", this.touchstart)

.unbind("drag", this.touchmove)

.unbind("dragend", this.touchend)

.bind("touchstart", this.touchstart)

.bind("touchmove", this.touchmove)

.bind("touchend", this.touchend)

.bind("dragstart", this.touchstart)

.bind("drag", this.touchmove)

.bind("dragend", this.touchend)

$(this).children().css({

"width":this._width + "px",

"overflow":"visible"

});

if(this.opts.flexible) this._item_w = this._width / this._view;

if(this.opts.roll) {

if(this._len % this._view > 0) {

var blank = $(document.createElement(this._list.eq(0).eq(0).prop("tagName"))).hide();

var cnt = this._view - (this._len % this._view);

for(var i=0; i<cnt; ++i) {

this._list.parent().append(blank.clone());

}

}

this._list = this._tg.children().children();

this._len = this._list.length;

this._len = (this._len / this._view) * this._view;

}

var page_gap = (this.opts.page > 1 && this.opts.page <= this._len) ? (this.opts.page - 1) * this._item_w : 0;

for(var i=0; i<this._len; ++i) {

this._pos[i] = this._item_w * i - page_gap;

this._start[i] = this._pos[i];

this._list.eq(i).css({

"float" : "none",

"position" : "absolute",

"top" : "0",

"left" : this._pos[i] + "px",

"width" : this._item_w + "px"

});

if(this.opts.supportsCssTransitions && this.opts.transition) {

this._list.eq(i).css({

"-moz-transition" : "0ms",

"-moz-transform" : "",

"-ms-transition" : "0ms",

"-ms-transform" : "",

"-webkit-transition" : "0ms",

"-webkit-transform" : "",

"transition" : "0ms",

"transform" : ""

});

}

}

if(this.opts.btn_prev && this.opts.btn_next) {

this.opts.btn_prev.unbind("click").bind("click", function() {

_this.animate(1, true);

return false;

})

this.opts.btn_next.unbind("click").bind("click", function() {

_this.animate(-1, true);

return false;

});

}

if(this.opts.paging) {

$(this._list).each(function (i, el) {

var btn_page = _this.opts.paging.eq(0).clone();

_this.opts.paging.before(btn_page);

btn_page.bind("click", function(e) {

_this.go_page(i, e);

return false;

});

});

this.opts.paging.remove();

}

this.initComplete();

this.counter();

},

initComplete : function () {

if(typeof(this.opts.initComplete) == "function") {

this.opts.initComplete(this);

}

},

resize : function (e) {

if(e.opts.flexible) {

var tmp_w = e._item_w;

e._width = parseInt(e._tg.css("width"));

e._item_w = e._width / e._view;

e._range = e.opts.range * e._width;

for(var i=0; i<e._len; ++i) {

e._pos[i] = e._pos[i] / tmp_w * e._item_w;

e._start[i] = e._start[i] / tmp_w * e._item_w;

e._list.eq(i).css({

"left" : e._pos[i] + "px",

"width" : e._item_w + "px"

});

if(this.opts.supportsCssTransitions && this.opts.transition) {

e._list.eq(i).css({

"-moz-transition" : "0ms",

"-moz-transform" : "",

"-ms-transition" : "0ms",

"-ms-transform" : "",

"-webkit-transition" : "0ms",

"-webkit-transform" : "",

"transition" : "0ms",

"transform" : ""

});

}

}

}

this.counter();

},

touchstart : function (e) {

if((e.type == "touchstart" && e.originalEvent.touches.length <= 1) || e.type == "dragstart") {

this._startX = e.pageX || e.originalEvent.touches[0].pageX;

this._startY = e.pageY || e.originalEvent.touches[0].pageY;

this._scroll = false;

this._start = [];

for(var i=0; i<this._len; ++i) {

this._start[i] = this._pos[i];

}

}

},

touchmove : function (e) {

if((e.type == "touchmove" && e.originalEvent.touches.length <= 1) || e.type == "drag") {

this._left = (e.pageX || e.originalEvent.touches[0].pageX) - this._startX;

this._top = (e.pageY || e.originalEvent.touches[0].pageY) - this._startY;

var w = this._left < 0 ? this._left * -1 : this._left;

var h = this._top < 0 ? this._top * -1 : this._top;

if (w < h || this._scroll) {

this._left = 0;

this._drag = false;

this._scroll = true;

} else {

if ( navigator.userAgent.indexOf("android 4.1") > -1 ) {

e.stopPropagation();

} else {

e.preventDefault();

}

this._drag = true;

this._scroll = false;

this.position(e);

}

for(var i=0; i<this._len; ++i) {

var tmp = this._start[i] + this._left;

if(this.opts.supportsCssTransitions && this.opts.transition) {

var trans = "translate3d(" + tmp + "px,0,0)";

this._list.eq(i).css({

"left" : "",

"-moz-transition" : "0ms",

"-moz-transform" : trans,

"-ms-transition" : "0ms",

"-ms-transform" : trans,

"-webkit-transition" : "0ms",

"-webkit-transform" : trans,

"transition" : "0ms",

"transform" : trans

});

} else {

this._list.eq(i).css("left", tmp + "px");

}

this._pos[i] = tmp;

}

}

},

touchend : function (e) {

if((e.type == "touchend" && e.originalEvent.touches.length <= 1) || e.type == "dragend") {

if(this._scroll) {

this._drag = false;

this._scroll = false;

return false;

}

this.animate(this.direction());

this._drag = false;

this._scroll = true;

}

},

position : function (d) { 

var gap = this._view * this._item_w;

if(d == -1 || d == 1) {

this._startX = 0;

this._start = [];

for(var i=0; i<this._len; ++i) {

this._start[i] = this._pos[i];

}

this._left = d * gap;

} else {

if(this._left > gap) this._left = gap;

if(this._left < - gap) this._left = - gap;

}

if(this.opts.roll) {

var tmp_pos = [];

for(var i=0; i<this._len; ++i) {

tmp_pos[i] = this._pos[i];

}

tmp_pos.sort(function(a,b){return a-b;});

var max_chk = tmp_pos[this._len-this._view];

var p_min = $.inArray(tmp_pos[0], this._pos);

var p_max = $.inArray(max_chk, this._pos);

if(this._view <= 1) max_chk = this._len - 1;

if((d == 1 && tmp_pos[0] >= 0) || (this._drag && tmp_pos[0] > 0)) {

for(var i=0; i<this._view; ++i, ++p_min, ++p_max) {

this._start[p_max] = this._start[p_min] - gap;

this._list.eq(p_max).css("left", this._start[p_max] + "px");

}

} else if((d == -1 && tmp_pos[max_chk] <= 0) || (this._drag && tmp_pos[max_chk] <= 0)) {

for(var i=0; i<this._view; ++i, ++p_min, ++p_max) {

this._start[p_min] = this._start[p_max] + gap;

this._list.eq(p_min).css("left", this._start[p_min] + "px");

}

}

} else {

if(this.limit_chk()) this._left = this._left / 2;

}

},

animate : function (d, btn_click) {

if(this._drag || !this._scroll || btn_click) {

var _this = this;

var speed = this._speed;

if(btn_click) this.position(d);

var gap = d * (this._item_w * this._view);

if(this._left == 0 || (!this.opts.roll && this.limit_chk()) ) gap = 0;

this._list.each(function (i, el) {

_this._pos[i] = _this._start[i] + gap;

if(_this.opts.supportsCssTransitions && _this.opts.transition) {

var transition = speed + "ms";

var transform = "translate3d(" + _this._pos[i] + "px,0,0)";

if(btn_click) transition = "0ms";

$(this).css({

"left" : "",

"-moz-transition" : transition,

"-moz-transform" : transform,

"-ms-transition" : transition,

"-ms-transform" : transform,

"-webkit-transition" : transition,

"-webkit-transform" : transform,

"transition" : transition,

"transform" : transform

});

} else {

$(this).animate({"left": _this._pos[i] + "px"}, speed);

}

});

this.counter();

}

},

direction : function () { 

var r = 0;

if(this._left < -(this._range)) r = -1;

else if(this._left > this._range) r = 1;

if(!this._drag || this._scroll) r = 0;

return r;

},

limit_chk : function () {

var last_p = parseInt((this._len - 1) / this._view) * this._view;

return ( (this._start[0] == 0 && this._left > 0) || (this._start[last_p] == 0 && this._left < 0) );

},

go_page : function (i, e) {

var crt = ($.inArray(0, this._pos) / this._view) + 1;

var cal = crt - (i + 1);

while(cal != 0) {

if(cal < 0) {

this.animate(-1, true);

cal++;

} else if(cal > 0) {

this.animate(1, true);

cal--;

}

}

},

get_page : function () {

return {

total : Math.ceil(this._len / this._view),

current : ($.inArray(0, this._pos) / this._view) + 1

}

},

counter : function () {

if($.inArray(0, this._pos) < 0) {

this.init();

}

this.opts.page = this.get_page().current;

if(typeof(this.opts.counter) == "function") {

this.opts.counter(this.get_page());

}

}

};


})(jQuery);



출처 http://dohoons.com/test/flick/



반응형
반응형




<!DOCTYPE html>

<html xml:lang="ko" lang="ko">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />

<meta name="apple-mobile-web-app-capable" content="yes" />

<title>KOMVO</title>


<link rel="stylesheet" type="text/css" href="../css/base.css"/>    

<link rel="stylesheet" type="text/css" href="../css/common.css"/>


<script type="text/javascript" src="../js/jquery-1.10.2.min.js"></script>

<script type="text/javascript" src="../js/komvo-ui.js"></script>


<!-- Link Swiper's CSS -->

<link rel="stylesheet" href="../css/swiper.css">


<!-- Demo styles -->

<style>

.swiper-container {

width: 100%;

height: 100%;

}

.swiper-container-horizontal>.swiper-pagination { position:relative; top:0; right:0%; height:24px; border-bottom:1px solid #e2e3e4; overflow:hidden; }

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet {margin:0 24px;}

.swiper-pagination-clickable .swiper-pagination-bullet { background:#ff0000; height:24px; margin:0 24px; }

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet { height:12px; margin-top:8px; background:url(../images/mnu_sub.png) no-repeat; background-size:500px auto; border-radius:0; }

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(1) {width:64px; background-position:0 0;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(2) {width:49px; background-position:-111px 0;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(3) {width:98px; background-position:-208px 0;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(4) {width:60px; background-position:-354px 0;}


.swiper-pagination-bullet-active {opacity:100%;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(1).swiper-pagination-bullet-active {background-position:0 -15px;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(2).swiper-pagination-bullet-active {background-position:-111px -15px;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(3).swiper-pagination-bullet-active {background-position:-208px -15px;}

.swiper-container-horizontal>.swiper-pagination .swiper-pagination-bullet:nth-child(4).swiper-pagination-bullet-active {background-position:-354px -15px;}



.swiper-wrapper {height:100%; min-height:480px; }

.swiper-slide {

background: #fff;

/* Center slide text vertically */

display: -webkit-box;

display: -ms-flexbox;

display: -webkit-flex;

display: flex;

-webkit-box-pack: center;

-ms-flex-pack: center;

-webkit-justify-content: center;

justify-content: center;

-webkit-box-align: center;

-ms-flex-align: center;

-webkit-align-items: center;

align-items: center;

}


.subContent .cds_h2 { height:50px; overflow:hidden; }

.subContent .sector {background:url(../images/mnu_sub.png); background-size:500px 28px; }

.subContent .sector.smnu01 {background-position:0 0;}

.subContent .sector.smnu02 {background-position:112px 0;}

.subContent .sector.smnu03 {background-position:208px 0;}


.loadingOn {

background : url(../images/komvo_Loding1.gif) 0 0 no-repeat;

-webkit-background-size : 28px 12px;

background-size : 28px 12px;

}

.loadingOff {

background : url(../images/komvo_Loding2.gif) 0 0 no-repeat;

-webkit-background-size : 28px 12px;

background-size : 28px 12px;

}

.hr_ld {margin:20px 0; overflow:hidden;}

.loadingOn,

.loadingOff {text-align:center;display:block; height:12px; background-position:50% 50%; }


.loadingOn em,

.loadingOff em {border:0; position:absolute; top:-10000px; left:-10000px; height:1px;font-size:1px; line-height:1px;}

</style>

<script>


var result_json="";

var renult_nextPage="";

var result_nextValue="";

var isComplete = false;

var lank =0;


$(document).ready(function(){

fn_load("0");  

});


fn_load = function(type){

// 마지막 데이타 체크

if ( type != "0" && renult_nextPage == undefined ){


alert('더이상 데이타가 없습니다.'); 

return;

}


$.ajax({

url: "https://www.googleapis.com/youtube/v3/playlistItems?"

+ [

"part=snippet",

"playlistId=PLSJkNdQGrU_z6TaXcxywg11bUKe6JFL71",

"order=date",

"maxResults=10",

"pageToken="+renult_nextPage,

"key=AIzaSyApAIIzHW07iHsS1z_ON4fLC_IAHy4sp64"

].join("&"),

dataType: "jsonp",

success: function(data){


result_json = data.items;

renult_nextPage = data.nextPageToken;


if(result_json.length >0)

{



for(i=0;i<result_json.length;i++){

//alert(result_json[i].id.videoId);

//alert(result_json[i].snippet.channelTitle);

lank = lank + 1;


var result_Value="<div class='wrp_cds'><div class='cds'>"; 

result_Value= result_Value + "<div class='cds_addition'>";

result_Value= result_Value + "<object type='text/html' data='http://www.youtube.com/embed/" + result_json[i].snippet.resourceId.videoId +"' allowFullScreen></object>";

result_Value= result_Value + "</div>";

result_Value= result_Value + "</div></div>";

$("#now").append(result_Value);


/*

var result_Value="<div class='wrp_cds'><div class='cds'>"; 

result_Value= result_Value + "<div class='cds_addition'><img data-src='"+result_json[i].snippet.thumbnails.high.url+"' width='100%' alt='' src='"+result_json[i].snippet.thumbnails.high.url+"'>"+lank+"</div>";

result_Value= result_Value + "<div class='cds_explain'><h2 class='cds_h2'><a href='play_jw.html?v=" + result_json[i].id.videoId + "&title=" + escape(result_json[i].snippet.title) + "'  >" + result_json[i].snippet.title +"</a></h2></div>";

result_Value= result_Value + "<div class='cds_bundle'><a href='play_jw.html?v=" + result_json[i].id.videoId + "&title=" + escape(result_json[i].snippet.title) + "' class='cds_send _MM_SHARE'  ><span class='imh im_send'>33,636,054 views</span></a></div><a href='#' class='cds_a' ><div><span class='blind'>"+result_json[i].snippet.publishedAt +"</span></div></a>";

result_Value= result_Value + "</div></div>";

*/

//console.log(result_Value);

//alert(result_Value);


//$("#now").append(result_Value);


}

}

}

});

}

// 하단 스크롤 데이타 append

$(document).ready(function (event){


$(window).scroll(function(){


var scrollHeight = $(window).scrollTop() + $(window).height();


var documentHeight = $(document).height();


//스크롤이 맨아래로 갔는지 아닌지 확인하는 if문


if(scrollHeight == documentHeight){

fn_load("2")

}


});


});


</script>

<!-- Swiper JS -->

<script src="../js/swiper.min.js"></script>


<!-- Initialize Swiper -->

<script>

var swiper = new Swiper('.swiper-container', {

pagination: '.swiper-pagination',

paginationClickable: true,

spaceBetween: 30,

});

</script>

</head>

<body>



<nav class="snb">

<div class="container">

<ul class="menuList">

<li><a href="#none">Home</a></li>

<li><a href="#none">TV Program</a></li>

<li><a href="#none" class="on">Entertainment</a></li>

<li><a href="#none">Fan’s Video</a></li>

<li><a href="#none">Favorite</a></li>

</ul>

<div class="userCtrlWrap">

<div class="setting">

<a href="#">Settings</a>

</div>

</div>

</div>

</nav>

<div id="wrap">

<header>

<div class="top">

<a href="#" class="btnMenu jsNavSnb">목록</a>

<!-- SubPage -->

<h1><a href="#"><span class="tit">TV Program</span></a></h1>

<a href="#" class="orderP">Popular</a>

<!-- 

<a href="#" class="orderP on">Popular</a>

<a href="#" class="orderL">Latest</a>

<a href="#" class="orderL on">Latest</a>

-->


<!-- MainPage Only  -->

<!-- <h1><a href="#"><span class="logo">KOMVO  logo</span></a></h1> -->


<a href="#" onclick="javascript:openLayerPop1(0);return false;" class="btnSearch">Search</a>


<div class="laypopup inPop search">

<!-- Search -->

<div class="search_form" id="form_base">

<label>Search</label>

<div class="fit-textinput-unit">

<input type="text" placeholder="Search Artists or Videos" >

<div class="fit-clear-btn"><a href="#">Delete</a></div>

</div>

</div>

<!--// Search -->

</div>


</div>

</header>


<div id="content" class="subContent">


<div id="contWrap">


<!-- flicking view start -->


<div class="swiper-container">


<div class="swiper-pagination"></div>


<div class="swiper-wrapper">

<div class="swiper-slide">


<div id="now" class="wrap id_now"></div>


</div>

<div class="swiper-slide">Slide 2</div>

<div class="swiper-slide">Slide 3</div>

<div class="swiper-slide">Slide 4</div>

</div>


</div>


<!-- flicking view End -->

</div>

</div>


<div id="footer">

<a href="#" class="spr btnTop">Top</a>

</div>


</div>


</body>

</html>

반응형
반응형


전역 변수 

__filename  현재 실행 중인 코드의 파일 경로

__dirname   현재 실행 중인 코드의 폴더 경로


console.log 로 출력 가능


console.log('file' ,__filename);


전역객체

console    콘솔 화면 기능  

exports     모듈 관련

process    프로그램 관련 

반응형
반응형

- UNABLE_TO_VERIFY_LEAF_SIGNATURE 가 발생할 경우

 아래 명령어 ...ssl 을 사용 안하겠다는거 ~
npm config set strict-ssl false


요거 후 다시 

npm install express 하면 자~~알 된다 자알~~

반응형
반응형




할려고 하는건 

유투브 아이디로 

채널 조회 후 

다시 채널 아이디로

플레이 리스트 (재생목록) 조회

플레이 리스트 아이디로

해당 영상 목록을 가져오는 방법이다..


뭔가 쉽지 않타 ㅎㅎ 올해안에 만들어야 할틴디 youtube api 공부중...



https://developers.google.com/youtube/v3/docs/channels/list  특정 아이디 채널 아이디 조회




https://developers.google.com/youtube/v3/docs/playlists/list  채널ID > 플레이 리스트 조회





https://developers.google.com/youtube/v3/docs/playlistItems/list  플레이 리스트ID > 영상 리스트 조회





반응형
반응형

page 로딩시.. 특정 위치로 이동하는 기능을 만들고 있었다..


$('html ,body').animate( {scrollTop :$("ID").offset().top},100)


요런식으로 하는데 계속 아무 오류도 안나고 작업이 안되었다..


그래서 옆동료가 ㅋㅋ


기본 스크립트로 해봤는데 성공 ㅎㅎㅎㅎㅎㅎ


document.getElementById("ID").scrolllntoView();


로 해결 ㅎㅎㅎ


잘 된다 잘돼~


반응형
반응형

<html>

 

<head>

 <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

<script>

$(document).ready(function() {

// 동적으로 태그 추가!!!

//var tag = $('<div>'. { id: 'test_div2'} );

var tag = document.createElement("div");

tag.id = "test_div2";

tag.innerHTML  = "test222";

document.body.appendChild(tag);

//$('#test_div1').append(tag);

 

// 정적 click 이벤트

$('#test_div1').click(function() {

alert('test_div1 click');

});

 

// 동적 click 이벤트

$(document).on('click', '#test_div2', function(){ alert('test_div2 click'); } );

});

</script>

</head>


<body>

<div id='test_div1'> 정적 div </div>

</body>




</html> 



반응형
반응형

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

 <head>

  <title> New Document </title>

  <meta name="Generator" content="EditPlus">

  <meta name="Author" content="">

  <meta name="Keywords" content="">

  <meta name="Description" content="">


<style type="text/css">

ul.tabs {

    margin: 0;

    padding: 0;

    float: left;

    list-style: none;

    height: 32px;

    border-bottom: 1px solid #eee;

    border-left: 1px solid #eee;

    width: 100%;

    font-family:"dotum";

    font-size:12px;

}

ul.tabs li {

    float: left;

    text-align:center;

    cursor: pointer;

    width:82px;

    height: 31px;

    line-height: 31px;

    border: 1px solid #eee;

    border-left: none;

    font-weight: bold;

    background: #fafafa;

    overflow: hidden;

    position: relative;

}

ul.tabs li.active {

    background: #FFFFFF;

    border-bottom: 1px solid #FFFFFF;

}

.tab_container {

    border: 1px solid #eee;

    border-top: none;

    clear: both;

    float: left;

    width: 248px;

    background: #FFFFFF;

}

.tab_content {

    padding: 5px;

    font-size: 12px;

    display: none;

}

.tab_container .tab_content ul {

    width:100%;

    margin:0px;

    padding:0px;

}

.tab_container .tab_content ul li {

    padding:5px;

    list-style:none

}

;

 #container {

    width: 249px;

    margin: 0 auto;

}

  </style>


   <script src="http://code.jquery.com/jquery-latest.min.js"></script>


 <script>

$(function () {


    $(".tab_content").hide();

    $(".tab_content:first").show();


     $("ul.tabs li").removeClass("active").css("color", "#333");

     $("ul.tabs li").eq( 1 ).addClass("active").css("color", "darkred");

$(".tab_content").hide()

$("#tab2").fadeIn();


    $("ul.tabs li").click(function () {


        $("ul.tabs li").removeClass("active").css("color", "#333");

        $(this).addClass("active").css("color", "darkred");

        $(".tab_content").hide()

//console.log($(this).attr("rel"));

        var activeTab = $(this).attr("rel");

        $("#" + activeTab).fadeIn()

    });

});

 </script>

 </head>



 <body>

<div id="container">

<ul class="tabs">

<li rel="tab1">공지사항</li>

<li rel="tab2">구매랭킹</li>

<li rel="tab3">공지사항33</li>

</ul>

<div class="tab_container">

<div id="tab1" class="tab_content">

<ul>

<li><a href="#">이것은 두 번째 탭의</a>

</li>

<li><a href="#">이것은 두 번째 탭의</a>

</li>

<li><a href="#">이것은 두 번째 탭의</a>

</li>

<li><a href="#">이것은 두 번째 탭의</a>

</li>

<li><a href="#">이것은 두 번째 탭의</a>

</li>

</ul>

</div>

<!-- #tab1 -->

<div id="tab2" class="tab_content">2222Mortal Kombat returns after a lengthy hiatus and puts players back into the Tournament for 2D fighting with gruesome combat.</div>

<!-- #tab2 -->

<div id="tab3" class="tab_content">3333Halo: Reach is the culmination of the superlative combat, sensational multiplayer, and seamless online integration that are the hallmarks of this superb series.</div>

<!-- #tab3 -->

</div>

<!-- .tab_container -->

</div>

<!-- #container -->

 </body>

</html>



반응형
반응형
상단

<a href="#top"> Top </a>
 
<script type="text/javascript">
   $(document).ready(function() {
      $('a[href=#top]').click(function(){
         $('html, body').animate({scrollTop:0}, 'slow');
         return false;
      });
   });
</script>


건 하단으로 스무스~~~

$('html, body').animate({ scrollTop: $(document).height()},800);



요건 특정 아이디로 스무스~~이동


<div id="target"></div>
 
<a href="#target" class="scroll">Scroll to target</a>
 
<script>
jQuery(document).ready(function($) {
 
$(".scroll").click(function(event){
event.preventDefault();
$('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
});
});
</script>


반응형
반응형

와 간결하네요 줴이쿼리~


http://youmightnotneedjquery.com/  출처~


AJAX

ALTERNATIVES:

 

JSON

JQUERY

$.getJSON('/my/url', function(data) {

});

IE9+

request = new XMLHttpRequest();
request.open('GET', '/my/url', true);

request.onload = function() {
  if (request.status >= 200 && request.status < 400){
    // Success!
    data = JSON.parse(request.responseText);
  } else {
    // We reached our target server, but it returned an error

  }
};

request.onerror = function() {
  // There was a connection error of some sort
};

request.send();

Request

JQUERY

$.ajax({
  type: 'GET',
  url: '/my/url',
  success: function(resp) {

  },
  error: function() {

  }
});

IE9+

request = new XMLHttpRequest();
request.open('GET', '/my/url', true);

request.onload = function() {
  if (request.status >= 200 && request.status < 400){
    // Success!
    resp = request.responseText;
  } else {
    // We reached our target server, but it returned an error

  }
};

request.onerror = function() {
  // There was a connection error of some sort
};

request.send();

Post

JQUERY

$.ajax({
  type: 'POST',
  url: '/my/url',
  data: data
});

IE8+

var request = new XMLHttpRequest();
request.open('POST', '/my/url', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.send(data);

EFFECTS

ALTERNATIVES:

 

Fade In

JQUERY

$(el).fadeIn();

IE9+

function fadeIn(el) {
  el.style.opacity = 0;

  var last = +new Date();
  var tick = function() {
    el.style.opacity = +el.style.opacity + (new Date() - last) / 400;
    last = +new Date();

    if (+el.style.opacity < 1) {
      (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16)
    }
  };

  tick();
}

fadeIn(el);

Hide

JQUERY

$(el).hide();

IE8+

el.style.display = 'none';

Show

JQUERY

$(el).show();

IE8+

el.style.display = '';

ELEMENTS

ALTERNATIVES:

 

Add Class

JQUERY

$(el).addClass(className);

IE8+

if (el.classList)
  el.classList.add(className);
else
  el.className += ' ' + className;

After

JQUERY

$(el).after(htmlString);

IE8+

el.insertAdjacentHTML('afterend', htmlString);

Append

JQUERY

$(parent).append(el);

IE8+

parent.appendChild(el);

Before

JQUERY

$(el).before(htmlString);

IE8+

el.insertAdjacentHTML('beforebegin', htmlString);

Children

JQUERY

$(el).children();

IE9+

el.children

Clone

JQUERY

$(el).clone();

IE8+

el.cloneNode(true);

Contains

JQUERY

$.contains(el, child);

IE8+

el !== child && el.contains(child);

Contains Selector

JQUERY

$(el).find(selector).length;

IE8+

el.querySelector(selector) !== null

Each

JQUERY

$(selector).each(function(i, el){

});

IE9+

var elements = document.querySelectorAll(selector);
Array.prototype.forEach.call(elements, function(el, i){

});

Empty

JQUERY

$(el).empty();

IE9+

el.innerHTML = '';

Filter

JQUERY

$(selector).filter(filterFn);

IE9+

Array.prototype.filter.call(document.querySelectorAll(selector), filterFn);

Finding Children

JQUERY

$(el).find(selector);

IE8+

el.querySelectorAll(selector);

Finding Elements

ALTERNATIVES:

 

JQUERY

$('.my #awesome selector');

IE8+

document.querySelectorAll('.my #awesome selector');

Get Style

JQUERY

$(el).css(ruleName);

IE9+

getComputedStyle(el)[ruleName];

Getting Attributes

JQUERY

$(el).attr('tabindex');

IE8+

el.getAttribute('tabindex');

Getting Html

JQUERY

$(el).html();

IE8+

el.innerHTML

Getting Outer Html

JQUERY

$('<div>').append($(el).clone()).html();

IE8+

el.outerHTML

Getting Text

JQUERY

$(el).text();

IE9+

el.textContent

Has Class

JQUERY

$(el).hasClass(className);

IE8+

if (el.classList)
  el.classList.contains(className);
else
  new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);

Matches

JQUERY

$(el).is($(otherEl));

IE8+

el === otherEl

Matches Selector

JQUERY

$(el).is('.my-class');

IE9+

var matches = function(el, selector) {
  return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector);
};

matches(el, '.my-class');

Offset

JQUERY

$(el).offset();

IE8+

var rect = el.getBoundingClientRect()

{
  top: rect.top + document.body.scrollTop,
  left: rect.left + document.body.scrollLeft
}

Offset Parent

JQUERY

$(el).offsetParent();

IE8+

el.offsetParent || el

Outer Height

JQUERY

$(el).outerHeight();

IE8+

el.offsetHeight

Outer Height With Margin

JQUERY

$(el).outerHeight(true);

IE9+

function outerHeight(el){
  var height = el.offsetHeight;
  var style = getComputedStyle(el);

  height += parseInt(style.marginTop) + parseInt(style.marginBottom);
  return height;
}

outerHeight(el);

Outer Width

JQUERY

$(el).outerWidth();

IE8+

el.offsetWidth

Outer Width With Margin

JQUERY

$(el).outerWidth(true);

IE9+

function outerWidth(el){
  var height = el.offsetWidth;
  var style = getComputedStyle(el);

  height += parseInt(style.marginLeft) + parseInt(style.marginRight);
  return height;
}

outerWidth(el);

Parent

JQUERY

$(el).parent();

IE8+

el.parentNode

Position

JQUERY

$(el).position();

IE8+

{left: el.offsetLeft, top: el.offsetTop}

Position Relative To Viewport

JQUERY

var offset = el.offset();

{
  top: offset.top - document.body.scrollTop,
  left: offset.left - document.body.scrollLeft
}

IE8+

el.getBoundingClientRect()

Prepend

JQUERY

$(parent).prepend(el);

IE8+

parent.insertBefore(el, parent.firstChild);

Remove

JQUERY

$(el).remove();

IE8+

el.parentNode.removeChild(el);

Remove Class

JQUERY

$(el).removeClass(className);

IE8+

if (el.classList)
  el.classList.remove(className);
else
  el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');

Replacing From Html

JQUERY

$(el).replaceWith(string);

IE8+

el.outerHTML = string;

Set Style

JQUERY

$(el).css('border-width', '20px');

IE8+

// Use a class if possible
el.style.borderWidth = '20px';

Setting Attributes

JQUERY

$(el).attr('tabindex', 3);

IE8+

el.setAttribute('tabindex', 3);

Setting Html

JQUERY

$(el).html(string);

IE8+

el.innerHTML = string;

Setting Text

JQUERY

$(el).text(string);

IE9+

el.textContent = string;

Siblings

JQUERY

$(el).siblings();

IE9+

Array.prototype.filter.call(el.parentNode.children, function(child){
  return child !== el;
});

Toggle Class

JQUERY

$(el).toggleClass(className);

IE9+

if (el.classList) {
  el.classList.toggle(className);
} else {
  var classes = el.className.split(' ');
  var existingIndex = classes.indexOf(className);

  if (existingIndex >= 0)
    classes.splice(existingIndex, 1);
  else
    classes.push(className);

  el.className = classes.join(' ');
}

EVENTS

Off

JQUERY

$(el).off(eventName, eventHandler);

IE9+

el.removeEventListener(eventName, eventHandler);

On

JQUERY

$(el).on(eventName, eventHandler);

IE9+

el.addEventListener(eventName, eventHandler);

Ready

JQUERY

$(document).ready(function(){

});

IE9+

document.addEventListener('DOMContentLoaded', function(){

});

Trigger Custom

ALTERNATIVES:

 

JQUERY

$(el).trigger('my-event', {some: 'data'});

IE9+

if (window.CustomEvent) {
  var event = new CustomEvent('my-event', {detail: {some: 'data'}});
} else {
  var event = document.createEvent('CustomEvent');
  event.initCustomEvent('my-event', true, true, {some: 'data'});
}

el.dispatchEvent(event);

Trigger Native

JQUERY

$(el).trigger('change');

IE9+

// For a full list of event types: https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent
event = document.createEvent('HTMLEvents');
event.initEvent('change', true, false);
el.dispatchEvent(event);

UTILS

Array Each

JQUERY

$.each(array, function(i, item){

});

IE9+

array.forEach(function(item, i){

});

Bind

JQUERY

$.proxy(fn, context);

IE9+

fn.bind(context);

Deep Extend

JQUERY

$.extend(true, {}, objA, objB);

IE8+

var deepExtend = function(out) {
  out = out || {};

  for (var i = 1; i < arguments.length; i++) {
    var obj = arguments[i];

    if (!obj)
      continue;

    for (var key in obj) {
      if (obj.hasOwnProperty(key)) {
        if (typeof obj[key] === 'object')
          deepExtend(out[key], obj[key]);
        else
          out[key] = obj[key];
      }
    }
  }

  return out;
};

deepExtend({}, objA, objB);

Extend

ALTERNATIVES:

 

JQUERY

$.extend({}, objA, objB);

IE8+

var extend = function(out) {
  out = out || {};

  for (var i = 1; i < arguments.length; i++) {
    if (!arguments[i])
      continue;

    for (var key in arguments[i]) {
      if (arguments[i].hasOwnProperty(key))
        out[key] = arguments[i][key];
    }
  }

  return out;
};

extend({}, objA, objB);

Index Of

JQUERY

$.inArray(item, array);

IE9+

array.indexOf(item);

Is Array

JQUERY

$.isArray(arr);

IE9+

Array.isArray(arr);

Map

JQUERY

$.map(array, function(value, index){

});

IE9+

array.map(function(value, index){

});

Now

JQUERY

$.now();

IE9+

Date.now();

Parse Html

JQUERY

$.parseHTML(htmlString);

IE9+

var parseHTML = function(str) {
  var tmp = document.implementation.createHTMLDocument();
  tmp.body.innerHTML = str;
  return tmp.body.children;
};

parseHTML(htmlString);

Parse Json

JQUERY

$.parseJSON(string);

IE8+

JSON.parse(string);

Trim

JQUERY

$.trim(string);

IE9+

string.trim();

Type

JQUERY

$.type(obj);

IE8+

Object.prototype.toString.call(obj).replace(/^\[object (.+)\]$/, "$1").toLowerCase();




반응형

+ Recent posts