Skip to content

Mini Help System with jQuery

Tip 조회 수 5613 추천 수 0 2013.01.23 15:10:56

a1.jpg

index.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Mini Help System with jQuery | Tutorialzine </title>

        <!-- Our stylesheet -->
        <link rel="stylesheet" href="assets/css/styles.css" />

    </head>
    <body>

        <div id="widget">

            <div id="header">
                <input type="text" id="search" placeholder="Search in the text" />
            </div>

            <div id="content">
                <!-- Your help text goes here -->
            </div>
        </div>​​

        <!-- JavaScript Includes -->
        <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
        <script src="assets/js/highlight.jquery.js"></script>
        <script src="assets/js/jquery.scrollTo.min.js"></script>
        <script src="assets/js/script.js"></script>
    </body>
</html>


assets/js/highlight.jquery.js

(function($) {

    var termPattern;

    $.fn.highlight = function(term, callback) {

        return this.each(function() {

            var elem = $(this);

            if (!elem.data('highlight-original')) {

                // Save the original element content
                elem.data('highlight-original', elem.html());

            } else {

                // restore the original content
                elem.highlightRestore();

            }

            termPattern = new RegExp('(' + term + ')', 'ig');

            // Search the element's contents
            walk(elem);

            // Trigger the callback
            callback && callback(elem.find('.match'));

        });
    };

    $.fn.highlightRestore = function() {

        return this.each(function() {
            var elem = $(this);
            elem.html(elem.data('highlight-original'));
        });

    };

    function walk(elem) {

        elem.contents().each(function() {

            if (this.nodeType == 3) { // text node

                if (termPattern.test(this.nodeValue)) {
                    // wrap the match in a span:
                    $(this).replaceWith(this.nodeValue.replace(termPattern, '<span class="match">$1</span>'));
                }
            } else {
                // recursively call the function on this element
                walk($(this));
            }
        });
    }

})(jQuery);



assets/js/script.js

$(function() {

    var search = $('#search'),
        content = $('#content'),
        matches = $(), index = 0;

    // Listen for the text input event
    search.on('input', function(e) {

        // Only search for strings 2 characters or more
        if (search.val().length >= 2) {

            // Use the highlight plugin
            content.highlight(search.val(), function(found) {

                matches = found;

                if(matches.length && content.is(':not(:animated)')){
                    scroll(0);
                }

            });
        } else {
            content.highlightRestore();
        }

    });

    search.on('keypress', function(e) {

        if(e.keyCode == 13){ // The enter key
            scrollNext();
        }

    });

    function scroll(i){
        index = i;

        // Trigger the scrollTo plugin. Limit it
        // to the y axis (vertical scroll only)
        content.scrollTo(matches.eq(i), 800, { axis:'y' } );
    }

    function scrollNext(){
        matches.length && scroll( (index + 1) % matches.length );
    }
});



profile

I see no changes, wake up in the morning and I ask myself

Is life worth living should I blast myself

Things would never be the same.

첨부
엮인글 :
http://adminplay.com/169206/cb6/trackback

l2zeo님은 글작성 및 댓글 포인트 ...

2013.01.23 15:10:56
*.52.33.196

l2zeo님은 50포인트에 당첨되셨습니다.
List of Articles
번호 제목 글쓴이 날짜 조회 수
27 최적화 그누보드에서 효율적으로 디비에 쿼리수 줄이기 ADMINPLAY 2012-01-16 9004
26 Tip 그누보드내에서 링크를 이용할때 \ 값이 자동 생성될때는? l2zeo 2012-09-30 5229
25 Tip 그누보드4(G4) 변수들 l2zeo 2013-01-22 49242
24 Tip 그누보드 회원 포인트 일괄삭제 하기 (mb_point + 포인트 내역) ADMINPLAY 2012-01-16 9585
23 Tip 그누보드 패밀리사이트에서 회원가입연동 l2zeo 2013-05-31 5914
22 Tip 그누보드 팁. $wr_id 값을 사용하지 않습니다_라고 뜰때 해결방법 3 (그누보드 관련 게시판이 있다면....) ADMINPLAY 2012-01-16 6584
21 Tip 그누보드 팁. $wr_id 값을 사용하지 않습니다_라고 뜰때 해결방법 2 (그누보드 관련 게시판이 있다면....) ADMINPLAY 2012-01-16 5838
20 Tip 그누보드 팁. $wr_id 값을 사용하지 않습니다_라고 뜰때 해결방법 1 (그누보드 관련 게시판이 있다면....) ADMINPLAY 2012-01-16 11362
19 Tip 그누보드 메타태그(description, keywords) 설정 file [1] ADMINPLAY 2012-01-16 15397
18 플러그인 그누보드 내글 모니터 (쿠키 및 구글 스타일 변환) file ADMINPLAY 2012-01-16 13178
17 Tip 공지사항 리스트에 이중 출력 안되도록. ADMINPLAY 2012-01-16 10403
16 플러그인 게시판의 정렬을 이용한 최신글 file ADMINPLAY 2012-01-16 28515
15 플러그인 게시물 순위를 이전과 비교해서 등수 출력 file ADMINPLAY 2012-01-16 11496
14 [긴급]그누보드 4.34.05 패치 ADMINPLAY 2012-01-16 5358
13 Tip [Lazy Load Plugin for jQuery] 효율적인 이미지 로딩 file l2zeo 2013-01-23 10219
12 Tip [caching tip] js, css 캐싱 팁 l2zeo 2013-01-23 5335
11 Tip SSL 보안인증 로그인,회원가입 적용하기 [1] l2zeo 2012-08-15 11800
10 Tip robots.txt 관련 Tip. l2zeo 2013-05-30 9509
» Tip Mini Help System with jQuery file [1] l2zeo 2013-01-23 5613
8 Tip jquery 관련 l2zeo 2013-05-26 6353

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234