프프프

Front/JavaScript

20개 발견

jQuery 플러그인 제작 프로세스

0. 영역 내, $ 별칭 보호

(function(global, $){
    'use strict';
    // $ === window.jQuery
})(window, window.jQuery);

1. 플러그인 기본형 쉘 작성

(function(global, $){
    'use strict';

    var plugin_name = '';

    if ( !$.fn[plugin_name] ) {
        $.fn[plugin_name] = function() {
            // 플러그인 코드
        };
    }

})(window, window.jQuery);

2. 체이닝 설정

(function(global, $){
    'use strict';

    var plugin_name = '';

    if ( !$.fn[plugin_name] ) {
        $.fn[plugin_name] = function() {

            // jQuery 체이닝 설정
            return this;
        };
    }

})(window, window.jQuery);

3. $.each() 유틸리티 메소드 활용

(function(global, $){
    'use strict';

    var plugin_name = '';

    if ( !$.fn[plugin_name] ) {
        $.fn[plugin_name] = function() {
            var $this = this;

            return $.each($this, function(index, el){
                var _$item = $this.eq(index); // jQuery 인스턴스 객체

                // 플러그인 코드
            });
        };
    }

})(window, window.jQuery);

4. 객체지향 프로그래밍 설정

(function(global, $){
    'use strict';

    var plugin_name = '';

    // 생성자 함수
    var ConstructorFn = function(el) {
        this.el = el;
    };

    // 생성자 프로토타입 객체
    ConstructorFn.fn = ConstructorFn.prototype = {
        // 초기화 메소드
        init: function() {

        }
    };

    if ( !$.fn[plugin_name] ) {
        $.fn[plugin_name] = function() {
            var $this = this;

            return $.each($this, function(index, el){
                var _$item = $this.eq(index);

                new ConstructorFn(el);
            });
        };
    }

})(window, window.jQuery);

5. 사용자정의/기본 옵션 설정

(function(global, $){
    'use strict';

    var plugin_name = '';

    var ConstructorFn = function(el, options) {
        this.init(el, options)
    };

    ConstructorFn.fn = ConstructorFn.prototype = {
        init: function(el, options) {
            // 사용자 정의 옵션 >> 기본 옵션 = 병합
            options = $.extend({}, $.fn[plugin_name].defaults, options);

            // 이벤트 메소드 실행
            this.events();
        },
        events: function() {

        }
    };

    if ( !$.fn[plugin_name] ) {
        // options - 사용자 정의 옵션 설정
        $.fn[plugin_name] = function(options) {
            var $this = this;

            return $.each($this, function(index, el){
                var _$item = $this.eq(index);

                // 생성자 함수에 options 전달
                new ConstructorFn(el, options);
            });
        };

        // 플러그인 초기 옵션 설정
        $.fn[plugin_name].defaults = {

        };
    }

})(window, window.jQuery);

출처: yamoo9/jQuery-Class

'Front > JavaScript' 카테고리의 다른 글

쿠키 만료 세팅  (0) 2017.02.15
지정한 문자 모두 치환하기 (replaceAll)  (0) 2017.02.15
accordion  (0) 2017.02.09
count elements  (0) 2017.02.06
문자열 존재 확인  (0) 2016.12.12
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

출처: http://gent.tistory.com/4

'Front > JavaScript' 카테고리의 다른 글

jQuery 플러그인 만들기  (0) 2017.03.19
지정한 문자 모두 치환하기 (replaceAll)  (0) 2017.02.15
accordion  (0) 2017.02.09
count elements  (0) 2017.02.06
문자열 존재 확인  (0) 2016.12.12
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

출처: http://gent.tistory.com/18

'Front > JavaScript' 카테고리의 다른 글

jQuery 플러그인 만들기  (0) 2017.03.19
쿠키 만료 세팅  (0) 2017.02.15
accordion  (0) 2017.02.09
count elements  (0) 2017.02.06
문자열 존재 확인  (0) 2016.12.12
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

See the Pen WRaGYY by parkjinhyung (@gutmate) on CodePen.


'Front > JavaScript' 카테고리의 다른 글

쿠키 만료 세팅  (0) 2017.02.15
지정한 문자 모두 치환하기 (replaceAll)  (0) 2017.02.15
count elements  (0) 2017.02.06
문자열 존재 확인  (0) 2016.12.12
최대값, 최소값 구하기 (arr sort)  (0) 2016.11.15
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다


'Front > JavaScript' 카테고리의 다른 글

지정한 문자 모두 치환하기 (replaceAll)  (0) 2017.02.15
accordion  (0) 2017.02.09
문자열 존재 확인  (0) 2016.12.12
최대값, 최소값 구하기 (arr sort)  (0) 2016.11.15
HTML5 TABLE 접근성  (0) 2016.11.11
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

'Front > JavaScript' 카테고리의 다른 글

accordion  (0) 2017.02.09
count elements  (0) 2017.02.06
최대값, 최소값 구하기 (arr sort)  (0) 2016.11.15
HTML5 TABLE 접근성  (0) 2016.11.11
변수 추가하기  (0) 2016.11.09
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다
$(function(){
    /* li 중 최대 높이값으로 높이 통일하기 */
    var heightArr = [];
    $("ul li").each(function(){
        heightArr.push($(this).height()); // li 높이 값 배열에 담기
    });
    heightArr.sort(function(a, b){return b-a;}); // 내림차순
    // heightArr.sort(function(a, b){return a-b;}); // 오름차순
    $("ul li").height(heightArr[0]);  // 내림차순일 경우 최대값, 오름차순일 경우 최소값
});


'Front > JavaScript' 카테고리의 다른 글

count elements  (0) 2017.02.06
문자열 존재 확인  (0) 2016.12.12
HTML5 TABLE 접근성  (0) 2016.11.11
변수 추가하기  (0) 2016.11.09
유튜브 재생 제어  (0) 2016.10.31
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다
/* table caption 입력 */
$(".table_wrap").each(function(){
    if (!$(this).find("caption").length){
        $(this).find(".table").prepend("<caption class=\"caption\"></caption>");
    }
    var txtSum = [];
    if ($(this).find("thead").length) {
        $(this).find("thead th").each(function(){
            txtSummary = $(this).text();
            txtSum.push(txtSummary);
        });
    } else {
        $(this).find("th").each(function(){
            txtSummary = $(this).text();
            txtSum.push(txtSummary);
        });
    }
    var txtDiv = txtSum.join(', ');
    var tit_tab = " " + $(".tab_menu a.on").text();
    if ($(this).find(".tit").length){
        var txt_tit = $(this).find(".tit").text();
        $(this).find("caption").text(txtDiv + " 순으로 구성되어 있는 " + txt_tit + tit_tab + " 목록입니다.");
    } else {
        var tit = $("#contentBox h3").text();
        $(this).find("caption").text(txtDiv + " 순으로 구성되어 있는 " + tit + tit_tab + " 목록입니다.");
    }
});
/* [end]: table caption 입력 */


'Front > JavaScript' 카테고리의 다른 글

문자열 존재 확인  (0) 2016.12.12
최대값, 최소값 구하기 (arr sort)  (0) 2016.11.15
변수 추가하기  (0) 2016.11.09
유튜브 재생 제어  (0) 2016.10.31
이벤트 버블링  (0) 2016.10.28
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

See the Pen gLaMyp by parkjinhyung (@gutmate) on CodePen.

'Front > JavaScript' 카테고리의 다른 글

최대값, 최소값 구하기 (arr sort)  (0) 2016.11.15
HTML5 TABLE 접근성  (0) 2016.11.11
유튜브 재생 제어  (0) 2016.10.31
이벤트 버블링  (0) 2016.10.28
레이어팝업 위치조정, 초점처리(for웹접근성)  (0) 2016.10.17
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다
1
2
3
4
5
6
7
8
9
// 유투브영상 재생
function btnOpenVideo() {
    $("#vedio").attr("src","https://www.youtube.com/embed/aaaaaa?autoplay=1");
    $(".ytp-large-play-button").trigger('click');
}
// 재생 종료
function btnCloseVideo() {
    $("#vedio").attr("src","https://www.youtube.com/embed/aaaaaa?autoplay=0");
}
cs


'Front > JavaScript' 카테고리의 다른 글

HTML5 TABLE 접근성  (0) 2016.11.11
변수 추가하기  (0) 2016.11.09
이벤트 버블링  (0) 2016.10.28
레이어팝업 위치조정, 초점처리(for웹접근성)  (0) 2016.10.17
스크롤 이동  (0) 2016.10.11
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

See the Pen mOdwEe by parkjinhyung (@gutmate) on CodePen.

'Front > JavaScript' 카테고리의 다른 글

변수 추가하기  (0) 2016.11.09
유튜브 재생 제어  (0) 2016.10.31
레이어팝업 위치조정, 초점처리(for웹접근성)  (0) 2016.10.17
스크롤 이동  (0) 2016.10.11
테이블 서머리, 캡션 삽입 스크립트  (0) 2016.09.22
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$('.layer_open').click(function(){
    var el = $(this);
    $('.layer_popup').show();
    $('.dim').show();
    el.attr('data-focus','on'); // 레이어 팝업이 닫힐 때를 위한 표시 - 웹접근성
 
    /* modalPopup팝업 위치조정 */
    window.setTimeout(function(){
        var target = $("#layerPopup");
        var win_height = $(window).height();
        var pop_height = target.height();
        var top_value = $(window).scrollTop() + (win_height - pop_height) /2;
        target.attr("tabindex","0");
        target.show().css("top",top_value);
        target.focus();
    },500);// ajax 팝업을 고려한 딜레이 추가
    /* [end]: modalPopup팝업 위치조정 */
});

$('.layer_close').click(function(){
    $('.layer_popup').hide();
    $('.dim').hide();
    $("a[data-focus~=on]").focus(); // 표시해둔 곳으로 초점 이동
    window.setTimeout(function(){
        $("a[data-focus~=on]").removeAttr("data-focus");
    },500); // 역할을 다하고 필요없어진 표시 삭제
});
cs


'Front > JavaScript' 카테고리의 다른 글

유튜브 재생 제어  (0) 2016.10.31
이벤트 버블링  (0) 2016.10.28
스크롤 이동  (0) 2016.10.11
테이블 서머리, 캡션 삽입 스크립트  (0) 2016.09.22
백그라운드이미지 애니메이션  (0) 2016.09.22
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

'Front > JavaScript' 카테고리의 다른 글

이벤트 버블링  (0) 2016.10.28
레이어팝업 위치조정, 초점처리(for웹접근성)  (0) 2016.10.17
테이블 서머리, 캡션 삽입 스크립트  (0) 2016.09.22
백그라운드이미지 애니메이션  (0) 2016.09.22
메뉴 고정  (0) 2016.08.04
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* table summary, caption 입력 */
$(".tb_write, .td_left").each(function(){
    if (!$(this).find("caption").length){
        $(this).prepend("<caption class=\"caption\"></caption>");
    } // caption 태그가 존재 하지 않을 때 caption 태그 생성
    var txtSum = []; // 배열 생성
    $(this).find("th").each(function(){
        txtSummary = $(this).text();
        txtSum.push(txtSummary); // 얻은 텍스트값을 배열에 추가
    });
    var txtDiv = txtSum.join(', '); // 배열 값의 구분 값 설정 후 문자열로 변환
    var tit_tab = " " + $(".tab_menu a.on").text(); // 탭메뉴가 존재할 때 탭메뉴 텍스트값 추가
    var tit = $("#contentBox h3").text(); // 제목 텍스트값 추가
    $(this).attr("summary",tit + tit_tab + " 목록이며 " + txtDiv + " 순으로 나열되어 있습니다."); // summary 속성에 텍스트 값 대입
    $(this).find(".caption").text(tit + tit_tab + " 목록"); // caption 태그에 텍스트 값 대입
});
/* [end]: table summary, caption 입력 */
cs


정해진 html 구조에 따른 경우에만 적용가능

개인커스텀 필요

'Front > JavaScript' 카테고리의 다른 글

레이어팝업 위치조정, 초점처리(for웹접근성)  (0) 2016.10.17
스크롤 이동  (0) 2016.10.11
백그라운드이미지 애니메이션  (0) 2016.09.22
메뉴 고정  (0) 2016.08.04
일정한 개수로 그룹화(묶기)  (0) 2016.08.02
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$(document).ready(function(){
    /**
     * 백그라운드 이미지의 애니메이션 화
     *
     *  - SECTION: 반복되는 이미지 구간 넓이
     *  - WIDTH: 이미지 전체 넓이
     *  - TIME: 애니메이션 속도
     *
     */
    
     // 생성
     $.fn.aniJin = function (SECTION, WIDTH, TIME){
         var $this = $(this); // 대상 설정
         if(!TIME) {TIME = 200;} // default 값 설정
 
         var repeat = setInterval(function(){
             var bpx = parseInt($this.css("backgroundPositionX")); // 백그라운드의 현재 위치값
             $this.css({
                 backgroundPositionX: "-=" + SECTION
             }); // 반복되는 구간 만큼 백그라운드 이동
             if (bpx <= -(WIDTH-SECTION*2)) {
                 clearInterval(repeat);
             } // 종료시점 설정
         }, TIME);
     };
    
     // EX
     $(".blossom2").aniJin(5508800200);
     $(".blossom3").aniJin(63013860180);
     $(".blossom4").aniJin(4808640200);
});
cs




'Front > JavaScript' 카테고리의 다른 글

스크롤 이동  (0) 2016.10.11
테이블 서머리, 캡션 삽입 스크립트  (0) 2016.09.22
메뉴 고정  (0) 2016.08.04
일정한 개수로 그룹화(묶기)  (0) 2016.08.02
테이블 헤드 고정  (0) 2016.07.28
댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다