그누보드 메인 jquery tab 소스입니다. > 십년전오늘

십년전오늘

10년전 추억의 책장을 넘기며

그누보드 메인 jquery tab 소스입니다. 정보

그누보드 메인 jquery tab 소스입니다.

본문

불당님 불지피고 관리자님께서 허락하신 현재 sir 초기페이지 jquery ajax tab 관련 코드입니다.
제가 손댄부분은 거의 없고, 탭 관련 해당소스만 간추린 것입니다.
* 아래 내용을 그누보드 환경에서 별도파일로 저장 jquery 코어파일 링크후 테스트 해보세요.

// 시작 -------------------------------------------------------------
<style type="text/css">
/* 탭 버튼 공통 */
.nav {float:left; width:100%; margin:0; padding:5px 0 0 0px; list-style:none; background:#ffffff url(http://sir.co.kr/img/nav/nav_bg.gif) repeat-x bottom right;}
.nav li {float:left; margin:0; padding:0; font-family:Dotum; font-size:12px; letter-spacing:-1px;}
.nav a {float:left; display:block; margin:0 1px 0 0; padding:4px 8px; text-decoration:none; border:1px solid #9B8748; border-bottom:none; background:#dddddd url(http://sir.co.kr/img/nav/off_bg.gif) repeat-x top left;}
.nav li a.selected {color:#000; letter-spacing:-1px; font-weight:bold; padding-bottom:5px; border-color:#727377; background:#fff url(http://sir.co.kr/img/nav/on_bg.gif) repeat-x top left;}

.display_none {display:none;}

/* _width:~~ 에서 _는 ie6전용 hack */
#good_skin_wrap {clear:both; border:1px solid #9B8748; border-top:none; _width:430px; _height:263px;}
#good_skin_0 {clear:both; padding:5px 0;}
#good_skin_1 {clear:both; padding:5px 0;}

#good_site_nav {padding-top:15px;}
#good_site_wrap {border:1px solid #9B8748; border-top:none; _width:430px;}
#good_site_0 {clear:both; padding:5px 0;}
#good_site_1 {clear:both; padding:5px 0;}

#new_post_nav {clear:both; padding-top:8px;}
#new_post_wrap {clear:both; border:1px solid #9B8748; border-top:none;}
#new_post_wrap ul {margin:0; padding:0px; list-style:none;}
#new_post_wrap li {height:14px; margin:0 0 5px 0; overflow:hidden; letter-spacing:-1px;}
#new_post_0, .new_post_pad {clear:both; padding:10px 10px 5px 10px;}
#new_post_wrap li a {color:#222222;}
#new_post_wrap li a:visited {color:#617FB9;}
.bk1 {background-color:#ededed;}
#new_post_loading {text-align:center;}

#text_ad ul {list-style:none; padding:5px 0 0 0px; margin:0;}
#text_ad li {padding:5px 0 0 0;}
#text_ad li a {letter-spacing:-1px; color:#000;}
#text_ad a.text_ad_back {background-color:#000; color:#fff; padding:2px 0;}
</style>

<div style="width:430px; height:auto;">

    <ul id='good_skin_nav' class='nav'>
        <li><a class='selected' href="">그 추천스킨</a></li>
        <li><a href="">그 추천빌더</a></li>
    </ul>
    <div id='good_skin_wrap'>
        <div id='good_skin_0'>
            <!-- ext -->
            <h3>그 추천스킨</h3>
            <ul class="tmp">
                <li>추천스킨</li>
                <li>추천스킨</li>
                <li>추천스킨</li>
                <li>추천스킨</li>
            </ul>
            <!-- //ext -->
        </div><!-- /good_skin_skin -->

        <div id='good_skin_1' style='display:none;'>
            <!-- ext -->
            <h3>그 추천빌더</h3>
            <ul class="tmp">
                <li>추천빌더</li>
                <li>추천빌더</li>
                <li>추천빌더</li>
                <li>추천빌더</li>
            </ul>
            <!-- //ext -->
        </div>
    </div>
    <!-- /good_skin_wrap -->

</div>

<div style="width:430px; height:auto;">

    <ul id='good_site_nav' class='nav'>
        <li><a class='selected' href="">그 추천사이트</a></li>
        <li><a href="">영 추천사이트</a></li>
    </ul>
    <div id='good_site_wrap'>
        <div id='good_site_0'>
            <!-- ext -->
            <h3>그 추천사이트</h3>
            <ul class="tmp">
                <li>그 추천사이트</li>
                <li>그 추천사이트</li>
                <li>그 추천사이트</li>
                <li>그 추천사이트</li>
            </ul>
            <!-- //ext -->
        </div>
        <div id='good_site_1' style='display:none;'>
            <!-- ext -->
            <h3>영카트4 추천사이트</h3>
            <ul class="tmp">
                <li>영 추천사이트</li>
                <li>영 추천사이트</li>
                <li>영 추천사이트</li>
                <li>영 추천사이트</li>
                <li>영 추천사이트</li>
            </ul>
            <!-- //ext -->
        </div>
    </div>
    <!-- good_site_wrap -->

</div>

<div style="width:200px; height:auto;">

    <ul id='new_post_nav' class='nav'>
        <li><a  href="">자유</a></li>
        <li><a  href="">그누</a></li>
        <li><a  href="">제작</a></li>
        <li><a class='selected' href="">팁텍</a></li>
    </ul>
    <div id='new_post_wrap'>

        <div id='new_post_0' class='new_post_pad display_none'>
            <!-- ext -->
            <h3>자유</h3>
            <ul class="tmp">
                <li>자유</li>
                <li>자유</li>
                <li>자유</li>
                <li>자유</li>
                <li>자유</li>
            </ul>
            <!-- //ext -->
        </div>

        <div id='new_post_1' class='new_post_pad display_none'>
            <!-- ext -->
            <h3>그누</h3>
            <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>
                <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>
                <li><a href="">======================</a></li>
            </ul>
            <!-- //ext -->
        </div>

        <div id='new_post_2' class='new_post_pad display_none'>
            <!-- ext -->
            <h3>제작</h3>
            <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>
                <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>
                <li><a href="">======================</a></li>
            </ul>
            <!-- //ext -->
        </div>

        <div id='new_post_3' class='new_post_pad display_none'>
            <!-- ext -->
            <h3>팁텍</h3>
            <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>
                <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>
                <li><a href="">======================</a></li>
            </ul>
            <!-- //ext -->
        </div>
    </div>
    <!-- /new_post_wrap -->

    <div id='text_ad'>
        <!-- ext 아래와 같은 형식으로 코딩해야함  -->
        <ul>
            <li><a href="">======================</a></li>
            <li><a href="">----------------------</a></li>
            <li><a href="">/////////////////////////////</a></li>
            <li><a href="">vvvvvvvvvvvvvvvvvvvvvv</a></li>
            <li><a href="">^^^^^^^^^^^^^^^^^^^^^</a></li>
            <li><a href="">~~~~~~~~~~~~~~~~</a></li>
        </ul>
        <!-- //ext -->
    </div>

    <div id='new_post_loading'><img src='http://sir.co.kr/img/ajax_loading.gif' border=0></div>

</div>

<script type="text/javascript">
// jquery 함께쓰기
var $j = jQuery.noConflict();

// 텍스트 롤링
var text_ad_index = 1;
var text_ad_save_index = null;
function text_ad_rolling() {
    if (text_ad_save_index != null)// li:nth-child(n) 은 n번째 자식 li
        $j('#text_ad li:nth-child('+text_ad_save_index+') a').removeClass('text_ad_back').css('color','#000');
    $j('#text_ad li:nth-child('+text_ad_index+') a').addClass('text_ad_back').css('color','yellow');
    text_ad_save_index = text_ad_index;
    text_ad_index++;
    if (text_ad_index > $j('#text_ad li').length)
        text_ad_index = 1;
    setTimeout("text_ad_rolling()", 1900);
}

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

    // 아래 두줄은 테스트를 위해 붙임
    $j("div h3").css({display:"none"});//타이틀 숨김
    $j(".tmp").css({height:"200px", margin:"0 20px"});//기본높이

    // 추천스킨
    var good_skin_selected_index = 0;
    $j('#good_skin_nav li').each(function(i) {
        $j(this).mouseover(function() {
            if (good_skin_selected_index == i) return false;

            $j('#good_skin_'+good_skin_selected_index).fadeOut("slow").hide();
            $j('#good_skin_nav li:nth-child('+(good_skin_selected_index+1)+') a').removeClass('selected');

            $j('#good_skin_'+i).fadeIn("slow").show();
            $j('#good_skin_nav li:nth-child('+(i+1)+') a').addClass('selected');

            good_skin_selected_index = i;

            set_cookie("ck_good_skin", i, 86400, "<?=$g4['cookie_domain']?>");
        });
    });

    // 추천사이트
    var good_site_selected_index = 0;
    $j('#good_site_nav li').each(function(i) {
        $j(this).mouseover(function() {
            if (good_site_selected_index == i) return false;

            $j('#good_site_'+good_site_selected_index).fadeOut("slow").hide();
            $j('#good_site_nav li:nth-child('+(good_site_selected_index+1)+') a').removeClass('selected');

            $j('#good_site_'+i).fadeIn("slow").show();
            $j('#good_site_nav li:nth-child('+(i+1)+') a').addClass('selected');

            good_site_selected_index = i;

            set_cookie("ck_good_site", i, 86400, "<?=$g4['cookie_domain']?>");
        });
    });

    // 새글
    var new_post_selected_index = 3;
    $j('#new_post_nav li').each(function(i) {
        $j(this).mouseover(function() {
            if (new_post_selected_index == i) return false;

            $j('#new_post_'+new_post_selected_index).fadeOut("slow").hide();
            $j('#new_post_nav li:nth-child('+(new_post_selected_index+1)+') a').removeClass('selected');

            $j('#new_post_'+i).fadeIn("slow").show();
            $j('#new_post_nav li:nth-child('+(i+1)+') a').addClass('selected');

            new_post_selected_index = i;

            set_cookie("ck_new_post", i, 86400, "<?=$g4['cookie_domain']?>");
        });
    });

    // li:odd 홀수번째 li에 bk1 클래스 지정, even은 짝수번째
    $j('#new_post_wrap ul > li:odd').each(function(i) {
        $j(this).addClass('bk1');
    });

    $j('#new_post_loading').addClass('display_none');
    $j('#new_post_3').removeClass('display_none');

    text_ad_rolling();
});
</script>
// ------------------------------------------------------------- 끝

댓글 전체

수정불능이네요..ㅠㅠ
참고로 코드중에서 <!-- ext -->와 <!-- //ext -->사이의 코드는 동작과는 무관한 임시코드입니다.
그 부분에 개인에 맞는 최신글들을 가져오면 될것입니다.
쿠키관련 부분은 제가 임의로 수정하려다 보류하고 테스트에서 제외했습니다.
여전히 다른분들을 위해서 애쓰고 계시군요. ^^

sir 홈페이지에서
FF(3.0.3) 에서두 탭 사이를 마우스로 왔다갔다 했더니
아예 두 탭에 해당하는 내용이 다 나오네요.
제 컴퓨터가 느려서 그런지도......(core duo 1.4GHz)

타이머가 도입되어야 할 듯 싶습니다.
오랬만에 뵙네요..
제가해본 다른방식들에서도 비슷한 문제가 있더군요.
장난처럼 왔다갔다 하면 제자리를 못찾는거하고 말씀하신 부분하고요.
타이머를 걸어도 잘 해결이 안되던데요.
"탭에 마우스오버된 상태에서 얼마후" 랜더링하는 개념이겠군요. 좀더 삽질을 해봐야겠네요..
그방식은 해둔게 있습니다.

클릭 > 클릭은 아무 문제가 없는데.
http://tottoe.com/template/customer/ajax_5_3.php

마우스오버 > 클릭으로 할때 탭간을 아주 빠르게 이동하면 서브가 제자리를 못찾는 문제가 있네요.
http://tottoe.com/template/customer/ajax_5_2.php

위엣것 두개는 이미 로드된 데이타를 랜더링하는 방식이고,

이것은 외부 php파일을 실행시켜 실시간으로 랜더링하는 것입니다.
이것도 쿠키가 적용된것입니다.

http://tottoe.com/template/customer/ajax_4.php#archives

두개 모두 활성탭에 이벤트를 제한하는것이 공히 필요합니다.

결과적으로 쓰임새에 맞는 방식을 선택하는것이 필요할듯 합니다.
전체 135,051
십년전오늘 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT