[JQUERY] 떠다니는 퀵메뉴 2편

앞선 것은 화면에서 고정되어 있는 녀석입니다.
그래서 화면을 늘이거나 줄여도 화면상에서 같은 위치에 있게 됩니다.

이번 거는 보이는 컨텐츠 내에서 위치가 고정되는 겁니다.
예를 들면 쇼핑몰 오른쪽에 최근 본 목록을 볼 때 항상 상품설명 밖에 위치하고 있고
거기서 상하로 스크롤 될 때도 위치가 고정되는 거죠.

그런 걸 만들어보고자 하는 것입니다.

<script type="text/javascript" language="Javascript">
        jQuery(document).ready(function() {
            jQuery(window).bind("resize", function() {
                jQuery("#quick_menu_div").css("top", 100).css("left", ( document.body.clientWidth / 2) - 525).show();
            }).trigger("resize");
           
            b_width = $(document.body).width(); //페이지 전체크기
            t_height = $(document.body).scrollTop(); //상단 높이
      
      
            width = b_width/2 - 525;
            height = t_height + 100; //상단부터 띄워야 하는 높이
      
            $("#quick_menu_div").css({top:height, left:width, display:'block'});
          
          
            var currentPosition = parseInt($("#quick_menu_div").css("top"));
          
            $(window).scroll(function() {
                var position = $(window).scrollTop(); // 현재 스크롤바의 위치값을 반환합니다.
                $("#quick_menu_div").stop().animate({"top":position+currentPosition+"px"},1000);
            });
        });
    </script>

이걸 head에 넣고

본문에 아래와 같이 넣어야 합니다.
<div id="quick_menu_div">
    여기에 뭘 넣어야 하나?
</div>

마지막으로 css를 넣어줘야겠죠?

#quick_menu_div {
    width: 150px;
    height: 350px;
    position: absolute;
    background-color: #EEE;
    top: 100px;
    display: block;
    z-index: 1000;
}

이렇게 하면 만들 수 있습니다.

상단 script에서 이런 식으로 function으로 만든 다음 원하는 값을 하나로 넣는 식으로 하면 관리가 훨씬 수월합니다.

jQuery(document).ready(function() {
           
            quickMenu("#top_menu", 1, 515, 100);
           
            function quickMenu(Div, leftRight, leftMargin, topMargin){
           
                b_width = $(document.body).width(); //페이지 전체크기
                t_height = $(document.body).scrollTop(); //상단 높이
                if(leftRight == 1){
                    width = b_width/2 - leftMargin;
                    jQuery(window).bind("resize", function() {
                        jQuery(Div).css("top", topMargin).css("left", ( document.body.clientWidth / 2) - leftMargin).show();
                    }).trigger("resize");
                } else {
                    width = b_width/2 + leftMargin;
                    jQuery(window).bind("resize", function() {
                        jQuery(Div).css("top", topMargin).css("left", ( document.body.clientWidth / 2) + leftMargin).show();
                    }).trigger("resize");
                }
               
                jQuery(window).bind("resize", function() {
                    jQuery(Div).css("top", topMargin).css("left", ( document.body.clientWidth / 2) - leftMargin).show();
                }).trigger("resize");
               
                height = t_height + topMargin; //상단부터 띄워야 하는 높이
          
                $(Div).css({top:height, left:width, display:'block'});
              
              
                var currentPosition = parseInt($(Div).css("top"));
              
                $(window).scroll(function() {
                    var position = $(window).scrollTop(); // 현재 스크롤바의 위치값을 반환합니다.
                    $("#top_menu").stop().animate({"top":position+currentPosition+"px"},1000);
                });
            }
        });

by 잠신 | 2010/09/03 16:42 | JAVASCRIPT | 트랙백 | 덧글(0)

[JQUERY]스크롤에 따라 움직이는 퀵메뉴바

중앙정렬된 값을 900으로 놓고 본다면 거기에 따라 중앙정렬에 맞춰 일정한 위치에 퀵메뉴를 놓도록 한다.

1. jquery는 일단 올린다.


2. head에 다음 내용을 넣는다.
<script type="text/javascript">
    $(document).ready(function(){
       
        b_width = $(document.body).width(); //페이지 전체크기
        d_width = $("#head_menu_layout").width(); //본문 전체 크기임
        t_height = $(document.body).scrollTop(); //상단 높이
   
   
        width = (b_width - d_width) <= 0 ? 900 : b_width/2 - 610; //중앙에서 어느 위치에 놓을지 적는다.
//900은 가운데 정렬한 div 값을 적는다.
//-610은 왼쪽으로 +는 오른쪽으로 놓는것이다.
        height = t_height + 150; //상단부터 띄워야 하는 높이
   
        $("#quick_menu_div").css({top:height, left:width, display:'block'});
       
       
        var currentPosition = parseInt($("#quick_menu_div").css("top"));
       
        $(window).scroll(function() {
            var position = $(window).scrollTop(); // 현재 스크롤바의 위치값을 반환합니다.
            $("#quick_menu_div").stop().animate({"top":position+currentPosition+"px"},1000);
        });
    });
</script>

3. body에 들어갈 내용을 올린다.

<div id="quick_menu_div">
    퀵메뉴 테스트
</div>

4. 관련된 CSS파일에 다음 값을 넣어야 한다.
#quick_menu_div {
    width: 150px;
    height: 350px;
    background-color: #FFF;
    position: absolute;
    top: 150px;
    display: none;
    z-index: 1000;
}
이 가운데 position과 top, display, z-index는 넣어야 한다.

by 잠신 | 2010/05/24 22:48 | JAVASCRIPT | 트랙백 | 덧글(0)

유니코드 데이터를 한글로 변환

ckfinder를 쓰다보니 한글파일이 올라가기는 하는데 이 녀석이 실제로 DB에는 한글을 유니코드로 변환해서 올라간다.

다시 이 녀석을 utf-8환경에서 한글로 보여주기 위해서는 다음과 같이 urldecode를 넣어서 한글로 만들고 보여주어야 한다.
3시간쯤 헤맸나? 휴~~

urldecode($name);

이 녀석을 다시 유니코드로 바꾸는 건 urlencode($name);  이렇게 하면 된다.

by 잠신 | 2010/05/24 15:42 | PHP&MYSQL | 트랙백 | 덧글(0)

서버에서 현재 위치를 알고 싶을 때

<?
global $PHP_SELF;
$thisfilename=basename(__FILE__);
$temp_filename=realpath(__FILE__);
if(!$temp_filename) $temp_filename=__FILE__;
$osdir=eregi_replace($thisfilename,"",$temp_filename);
unset($temp_filename);
$virdir = eregi_replace($thisfilename,"",$PHP_SELF);

echo "현재 디렉토리의 절대경로 : ".$osdir."<br>";
echo "현재 디렉토리의 상대 경로 주소 : ".$virdir."<br>";
 ?>

출처는 http://www.xe.allbaro.net/?document_srl=44099 여기다.
웹서핑하다 알게 되었는데 유용할 것 같아서 챙겨둔다.

by 잠신 | 2010/05/24 13:14 | PHP&MYSQL | 트랙백 | 덧글(0)

IE6에서 PNG 투명 사용하기

별의 별 짓을 다해봤는데 결국 Jquery로 갑니다.

png가 배경으로 되었을 때 position:relative로 하지 않으면 관련 링크가 모두 죽는 것 말고는
가장 확실한 방법인듯 합니다. 따로 설정해줄 것도 없고 배경으로 png쓰기는 그만입니다.

순서
1. jquery.js와 jquery.pngFix.js 다운로드하기
2. head에 첨부시켜주기

<script type="text/javascript" src="/main/js/jquery.js"></script>
<script type="text/javascript" src="/main/js/jquery.pngFix.js"></script>
3. 그 아래 다음과 같은 함수 넣어주기

<script type="text/javascript"> 
$(document).ready(function(){
$(document).pngFix();
});
</script>

4. 링크가 다 죽어버리므로 링크 들어가는 녀석은 position:relative로 변경해주기

끝!



by 잠신 | 2010/02/02 15:51 | 트랙백 | 덧글(0)

e-mail, homepage check 정규표현식

^[-_a-z0-9]+(\.[-_a-z0-0]+)*@[-_a-z0-9]+(\.[-_a-z0-9]+)+$

이메일 체크할 때 사용하는 정규표현식이다.

중간에 (\.[-_a-z0-0]+)은 어떤 메일에서는 아이디부분 중간에 .이 들어갈 수 있다는 점을 활용하여 사용한 이메일 주소도 있을 수 있고 이 값 역시 true로 돌려주기 위한 것이다.

[a-z0-9]+\.[a-z0-9]+

이것은 홈페이지 체크시 사용하는 정규표현식

by 잠신 | 2009/05/21 14:24 | PHP&MYSQL | 트랙백 | 덧글(0)

mac osx에서 ssh 접속하기

windows에서는 이걸 사용하려면 putty를 깔아야 하죠.
하지만 osx이 뭔가요? 리눅스 기반 아닙니까?
방법이 없나 찾아보다가 이런 걸 봤네요..

1. 터미널을 연다.

2. 프롬프트에서 ssh username@server.name
ex) ssh euiyoung@sample.com

3. 비밀번호 넣는다.

이러면 바로 접속이 되는군요. 아주 좋아요~

by 잠신 | 2009/05/03 21:11 | HTML | 트랙백 | 덧글(0)

fckeditor 설치하기(PHP)

http://tong.nate.com/jupiter0410/36528898에서 퍼왔습니다.

fckeditor는 글을 올릴 때 사용자 편의를 위해 깔아 쓰는 것으로
아주 편리하게 그림이나 플래시를 올릴 수 있도록 되어 있어서 이걸 활용하면 템플릿을 만들고 
페이지를 php로 해서 불러오는데 아주 편할 것 같네요..


< 적용방법 >

1. 압축을 푼후 fckeditor폴더를 사이트 root폴더에 풉니다.
 
2. 글쓰기(에디터)가 들어가는 페이지에 include를 합니다.

 

<? include "../fckeditor/fckeditor.php"; ?>

 


3.편집기(textarea)가 들어가는 위치에 다음의 코드를 삽입합니다.

 

<?php
$oFCKeditor = new FCKeditor('text');          // textarea name
$oFCKeditor->BasePath = '../fckeditor/';
$oFCKeditor->Value      = $CONTENT ; // 로딩시 출력
$oFCKeditor->Width      = 400;      // width

$oFCKeditor->Height     = 300;      // height
$oFCKeditor->Create();
?>

 


4. 사용법을 모르시면 sample를 통해 확인을 하실수 있습니다.

/_samples/php/sample01.php
~
/_samples/php/sample04.php

 

 


<기타 설정>

설정파일1 : /fckeditor/fckconfig.js

 

 

FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;  // 기본 css

 

FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/silver/' ;   // 기본 스킨

 

FCKConfig.DefaultLanguage  = 'en' ;    // 기본사용되는 Language

 

FCKConfig.ToolbarSets["Default"] = [
 ['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
 ['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
 ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
 ['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
 '/',
 ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
 ['OrderedList','UnorderedList','-','Outdent','Indent'],
 ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
 ['Link','Unlink','Anchor'],
 ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
 '/',
 ['Style','FontFormat','FontName','FontSize'],
 ['TextColor','BGColor'],
 ['FitWindow','-','About']
] ;

// 사용 될 기능을 추가하고 삭제할수 있다.

 


FCKConfig.EnterMode = 'br' ;   // p | div | br
FCKConfig.ShiftEnterMode = 'p' ; // p | div | br

// Enter와 ShiftEnter를 클릭했을때 사용되는 <br>와 <p>태그

 


등 기본단어만 아시면 바로 바로 수정을 하실수 있습니다.

 

 


설정파일2 : /fckeditor/fckeditor.js


 

this.Width   = width   || '100%' ;   
this.Height   = height  || '200' ;

에디터의 가로 및 높이 조절

 

 

기본설정변경3 : /fckeditor/fckconfig.js

 

FCKConfig.ProtectedSource.Add( /<\?[\s\S]*?\?>/g ) ; // PHP style server side code
FCKConfig.DefaultLanguage  = 'ko' ;

FCKConfig.ToolbarCanCollapse = false ;    // open button cancel
FCKConfig.EnterMode = 'br' ;   // p | div | br
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php


 

파일업로드설정변경

 

1./home/~/public_html/fckeditor/editor/filemanager/upload/php/config.php

 

$Config['Enabled'] = true ;  // true로 변경
$Config['UserFilesPath'] = '/Upload/' ;     // 웹상 경로

$Config['UserFilesAbsolutePath'] = $_SERVER["DOCUMENT_ROOT"].'/Upload/' ;    또는
$Config['UserFilesAbsolutePath'] = '/home/~/public_html/Upload/' ;  // 실제 경로

 

ps) Upload 디렉토리의 파일 퍼미션(777) 체크 - chmod 777 /home/~/public_html/Upload

 

2./home/~/public_html/fckeditor/editor/filemanager/browser/default/connectors/php/config.php

 

$Config['Enabled'] = true ;
$Config['UserFilesPath'] = '/Upload/';
$Config['UserFilesAbsolutePath'] = $_SERVER["DOCUMENT_ROOT"].'/Upload/' ;    또는
$Config['UserFilesAbsolutePath'] = '/home/~/public_html/Upload/' ;  // 실제 경로


 

Null 체크

<script language="javascript">

var oEditor = FCKeditorAPI.GetInstance('content') ;
var content = oEditor.GetXHTML(true);

if(content == ""){
 alert('글내용을 입력하세요');
 return false;
}
</script>

by 잠신 | 2009/05/03 20:59 | PHP&MYSQL | 트랙백 | 덧글(0)

대한민국 프로 야구 역사상 사이클링 히트 기록

대한민국 프로 야구 역사상 사이클링 히트 기록

  1. 오대석(삼성) 1982년 6월 12일 삼미
  2. 이강돈(빙그레) 1987년 8월 27일 OB
  3. 정구선(롯데) 1987년 8월 31일 청보
  4. 강석천(빙그레) 1990년 8월 4일 태평양
  5. 임형석(OB) 1992년 8월 23일 롯데
  6. 서용빈(LG) 1994년 4월 16일 롯데
  7. 김응국(롯데) 1996년 4월 14일 한화
  8. 양준혁(삼성) 1996년 8월 23일 현대
  9. 마르티네스(삼성) 2001년 5월 26일 해태
  10. 전준호(현대) 2001년 7월 6일 삼성
  11. 양준혁(삼성) 2003년 4월 15일 현대전, 2번째
  12. 신종길(한화) 2004년 9월 21일 두산
  13. 안치용(LG) 2008년 6월 26일 삼성
  14. 이종욱(두산) 2009년 4월 11일 LG

출처는 위키페디아네요..

오늘 종욱이의 기록이 바로 올라갔네요.
처음 두산에 왔을 때부터 눈여겨봤고, 시헌이의 절친이라고 하니까 더 관심이 가대요~
(제 두산 유니폼에도 시헌이의 등번호를 넣기 위해 군생활동안 비워뒀었죠~ ^^;)

열심히 하는 당신의 모습이 너무 좋았고, 올 시즌 부상없이 열심히 뛰어주었으면 하는 바람입니다.
제발 다치지마라~~~

by 잠신 | 2009/04/12 02:00 | 트랙백 | 덧글(1)

랜들에 대해서는 한마디 써야겠네요.

랜들은 2005년부터 올해까지 치면 5년쨉니다.

하긴 올해는 뛰지 못하니 4년을 뛰었군요.
그리고 결국 허리 부상으로 "퇴출"이란 이름으로 두산을 떠나게 되었네요.

어떤 사람들은 혹시 그가 다른 나쁜 일에 연루되어서 지하철 계단을 내려오다 다쳤다는 핑계로 퇴출시킨 건 아니냐는 의혹을 제기하기도 하고, 또 누구는 랜들이 누구냐? 어떻게 몇달 못뛴다고 퇴출이냐!라고 역정을 내는 사람도 봤습니다.

그리고 생각해봤습니다.

내가 랜들에 대해서 아는 것은 무엇인가?
그리고 나는 랜들과 두산에 대해서 어디까지 얼마나 말해야 하나?

개인적인 친분은 없습니다.
적어도 랜들이 신문기사에 나왔다하면 다 읽었습니다.
경기장에 가서 몇번 멀리서 봤을뿐입니다.
그것만을 토대로 해서 몇마디 해보겠습니다.

두산에서는 예전 랜들의 부상에도 매번 기다려줬습니다.
작년에도 한 여름 되기전에 6주 정도 쉬었고, 그 전 해도 부상이 있었습니다.

두산은 계속 기다려줬습니다. 아마 다른 팀에 있었으면 벌써 퇴출이라는 이름으로 버려졌을 지도 모릅니다.

올해 팬사이트 회원모집에 대해서 박동희 기자가 이야기 한 말에 대해서 100% 공감합니다.
팬에게, 선수에게 너무 짠거 아닌가 하는 느낌이 없지 않습니다.

하지만 이번 문제는 좀 다르게 봐야하지 않을까 하는게 저의 시각인데요..

우리가 알고 있는 사실은

1. 두산은 랜들에게 지난 4년동안 그렇게 박하지 않았다.
2. 안경현을 내보낸 것에 대해서 의견이 분분하지만 결국 안경현에게, 두산에게 서로 윈윈의 결정이 아닐까 합니다.
3. 랜들이 허리 부상으로 치료에 6주, 공 던지는데 3개월이 걸린다.
4. 이제 시즌이 시작하는데 3개월이면 시즌의 절반입니다.

그리고 그 절반이 지난 후 제대로 구속이 나올지 어떨지 알 수 없는 상황이니 그 얘기까지는 하지 말기로 하죠.

랜들이 자신의 상태가 이러니 내년에 몸 만들어 오겠다고 했을지,
팀으로서는 자신이 차지하는 위치만큼 큰 구멍이 생긴다는 것에 대한 부담을 안아야 하고,
랜들이 어디서 나쁜 짓을 했는지, 말 못할 사정이 있는지 우리는 모르는 거죠~

국내 선수는 몇십명 중에 1명으로 있으면 되지만 외국인선수는 2명가운데 1명입니다.
자리를 비운 상태로 두기에는 부담이 될 수 밖에 없는 상황인거죠..
 
개인적으로 "퇴출"이란 표현이 마음에 안듭니다.
랜들과 두산의 관계는 그저 "퇴출"이란 단어로 둘의 사이를 갈라놓기엔 너무 싸가지 없는 말이란 생각이 들거든요.

안타깝네요. 좋은 우리 선수를 계속 경기장에서 보지 못해서~
하루 빨리 완쾌되기를 진심으로 바랍니다.
그리고 내년에 꼭 다시 볼 수 있었으면 좋겠습니다.

by 잠신 | 2009/03/31 01:29 | 두산베어스 | 트랙백 | 덧글(1)

◀ 이전 페이지          다음 페이지 ▶