아

[jQuery] 실시간 검색어 순위 순서대로 보여주기

· 2011-11-01 (화) 05:53:02 · 9301 · 8
http://sir.co.kr/bbs/board.php?bo_table=tiptech&wr_id=3569

이 글을 보고 간단히 만들어봤습니다.


index.html

<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml'>
    <head>
        <title>Real-time Rank</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <link href="stylesheet.css" media="screen" rel="stylesheet" type="text/css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
        <script src="application.js" type="text/javascript"></script>
        </head>
    <body>
        <div id="content">
            <dl id="rank-list">
                <dt>실시간 급상승 검색어</dt>
                <dd>
                    <ol>
                        <li><a href="#">1 순위</a></li>
                        <li><a href="#">2 순위</a></li>
                        <li><a href="#">3 순위</a></li>
                        <li><a href="#">4 순위</a></li>
                        <li><a href="#">5 순위</a></li>
                        <li><a href="#">6 순위</a></li>
                        <li><a href="#">7 순위</a></li>
                        <li><a href="#">8 순위</a></li>
                        <li><a href="#">9 순위</a></li>
                        <li><a href="#">10 순위</a></li>
                    </ol>
                </dd>
            </dl>
        </div>
    </body>
</html>


stylesheet.css

body {
    font-size: 12px;
    background: #FFF;
    color: #333;
    margin: 0;
}

#content {
    margin: 20px;
    padding: 10px;
    background: #393;
}

#rank-list a {
    color: #FFF;
    text-decoration: none;
}

#rank-list a:hover {
    text-decoration: underline;
}

#rank-list {
    overflow: hidden;
    width: 160px;
    height: 20px;
    margin: 0;
}

#rank-list dt {
    display: none;
}

#rank-list dd {
    position: relative;
    margin: 0;
}

#rank-list ol {
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    padding: 0;
    list-style-type: none;
}

#rank-list li {
    height: 20px;
    line-height: 20px;
}


application.js

$(function() {
    var count = $('#rank-list li').length;
    var height = $('#rank-list li').height();

    function step(index) {
        $('#rank-list ol').delay(2000).animate({
            top: -height * index,
        }, 500, function() {
            step((index + 1) % count);
        });
    }

    step(1);
});

|

댓글 8개

올리고 보니 쓸데없는 재귀가 쓰였군요. 바보 같은 코드인데...

window.setInterval로 처리하시는 게 훨씬 안전할 것 같습니다.
생각해 보면 animate가 interval을 쓰기 때문에 그냥 저 코드 그대로 가도 되는군요.

혼자 뭐하는 거지 (...)
혹 네이버,다음,네이트 실시간 검색어 XML 필요하시면
http://bangabmoa.com/api/hitkeyword.php?type=xml
활용하세요.
upcount 말고 downcount가 있는지는 모르겠지만, 일단 upcount가 항상 있다는 가정 하에 적용해봤습니다.

[application.js]

$(function() {
function animateRankList() {
var count = $('#rank-list li').length;
var height = $('#rank-list li').height();

function step(index) {
$('#rank-list ol').delay(2000).animate({
top: -height * index,
}, 500, function() {
step((index + 1) % count);
});
}

step(1);
}

window.yqlCallback = function(data) {
$(data.query.results.channel.data.naver.item).each(function(index, item) {
var text = item.rank + ' - ' + item.keyword + ' [' + item.upcount + ']';
$('#rank-list li a').eq(index).text(text);
});

animateRankList();
}

$('#rank-list li a').text('');

var url = 'http://bangabmoa.com/api/hitkeyword.php?type=xml';
var yql = 'SELECT * FROM xml WHERE url="' + url + '"';

$.ajax({
url: 'http://query.yahooapis.com/v1/public/yql?q=' + yql +
'&format=json&callback=yqlCallback',
dataType: 'script'
});
});
댓글에선 들여쓰기가 하나도 적용 안 되네요.

http://www.google.co.kr/search?q=JavaScript+Beautifier

맘에 드시는 JavaScript Beautifier를 골라 잡아서 돌려주시면 들여쓰기가 깔끔히 적용된 코드를 보실 수 있을 겁니다.
2011-11-04 (금) 13:45:55
http://jsbeautifier.org/

좋네요~ㅋ 감사합니다.
이거 여러 부분에서 유용하겠네요
2011-11-02 (수) 15:16:31
오호~감사합니다
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
12-04-10 조회 3,834
12-04-06 조회 5,285
12-04-06 조회 3,059
12-04-04 조회 4,151
12-04-02 조회 3,483
12-03-30 조회 3,414
12-03-29 조회 5,951
12-03-28 조회 3,314
12-03-28 조회 4,218
12-03-27 조회 4,494
12-03-23 조회 3,710
12-03-21 조회 3,435
12-03-20 조회 3,233
12-03-18 조회 3,072
12-03-15 조회 3,255
12-03-12 조회 3,299
12-03-12 조회 3,250
12-03-08 조회 3,580
12-03-03 조회 3,645
12-03-03 조회 3,206
12-02-29 조회 3,470
12-02-28 조회 3,500
12-02-28 조회 3,323
12-02-28 조회 3,432
12-02-27 조회 3,849
12-02-27 조회 3,282
12-02-24 조회 3,443
12-02-24 조회 3,279
12-02-23 조회 3,646
12-02-20 조회 3,558
12-02-20 조회 4,031
12-02-17 조회 4,018
12-02-16 조회 3,149
12-02-15 조회 3,420
12-02-15 조회 3,523
12-02-14 조회 3,477
12-02-08 조회 3,437
12-02-06 조회 3,420
12-02-06 조회 3,843
12-01-25 조회 4,087
12-01-21 조회 3,988
12-01-20 조회 6,108
12-01-15 조회 3,605
12-01-15 조회 3,562
12-01-14 조회 3,459
12-01-14 조회 3,601
12-01-14 조회 3,326
12-01-12 조회 3,957
12-01-12 조회 4,212
12-01-10 조회 3,537
12-01-10 조회 4,336
12-01-09 조회 3,700
12-01-08 조회 6,964
12-01-08 조회 3,171
12-01-07 조회 3,523
12-01-06 조회 3,532
12-01-04 조회 3,677
12-01-03 조회 3,530
12-01-02 조회 3,931
12-01-02 조회 3,125
12-01-01 조회 4,056
12-01-01 조회 3,399
11-12-31 조회 3,647
11-12-31 조회 3,755
11-12-31 조회 3,584
11-12-30 조회 3,814
11-12-30 조회 4,996
11-12-30 조회 4,111
11-12-30 조회 4,262
11-12-30 조회 3,738
11-12-30 조회 3,460
11-12-30 조회 3,464
11-12-29 조회 3,187
11-12-22 조회 3,413
11-12-21 조회 3,319
11-12-20 조회 3,603
11-12-15 조회 5,404
11-12-15 조회 4,402
11-12-14 조회 5,428
11-12-12 조회 3,623
11-12-03 조회 3,380
11-11-26 조회 3,434
11-11-19 조회 3,688
11-11-01 조회 3,007
11-10-23 조회 2,676
11-10-21 조회 2,656
11-10-15 조회 3,128
11-10-15 조회 2,861
11-10-15 조회 3,530
11-10-15 조회 2,763
11-10-14 조회 2,797
11-10-13 조회 2,568
11-10-11 조회 2,814
11-10-10 조회 2,635
11-09-30 조회 3,514
11-09-30 조회 2,948
11-09-29 조회 4,776
11-09-29 조회 2,616
11-09-23 조회 2,646
11-09-16 조회 2,974