점점 희한하게 진화(;)해가는 포스트잇 스킨;;
그 삽질의 기록 ㄱ-
.
.
.
.
.
처음에, 제목을 클릭하면 내용이 나오게 하는 것은 다들 아시는 more/less 태그를 이용한 것이었습니다.
html 소스 중 메뉴 소스 부분을 보면
<h3 class="posttitle"><$mntitle$></h3>
<div class="content"><$mnbody$></div>
이렇게 되어 있는데 그걸
<h3 class="posttitle" onclick="this.nextSibling.style.display=(this.nextSibling.style.display=='none')?'block':'none';"><$mntitle$></h3><DIV style='display:none'><div class="content"><$mnbody$></div></div>
이렇게 해 준 거죠.
처음엔 좋더군요.
하지만,
시간이 지날수록
마우스를 클릭해야 메뉴가 보이는게 귀찮아졌습니다. -,.-;;
마우스를 '대기만 해도' 메뉴가 쫙 보이면 얼마나 좋을까.
이글루스 메인 화면에 보면 <테마 전체보기>라는 메뉴 있잖아요. 그것도 마우스를 대면 내용이 주륵 나오거든요. 방법이 분명 있을텐데. 있을텐데. 있을텐데에에에~~~~~ ;ㅇ;ㅇ;ㅇ;
...그래서 뒤지기 시작.
일단 이글루스 메인 화면의 소스를 분석해보는 것부터 시작했습니다.
시작했는데... 봐봤자 알 수가 없더군요 orz
한가지 건진 거라곤 저 <onclick>비슷한 <onmouseover>와 <onmouseout>이라는 명령어가 있다는 것뿐.
(아니, 그게 어디냐. 제일 중요한 핵심인데.)
직관적인 이름으로 보건데 onclick이 마우스'클릭'이었으니 onmouseover와 out는 마우스'오버'/'아웃'이렷다.
그래서 onmouseover/out 관련글을 줄창 뒤지기 시작.
...뒤져도 잘 모르겠더이다 orz
대부분 뭔가 자바스크립트 프로그램에서 쓰이고 있는데, 자바스크립트 같은 거 알지도 못하거니와 이글루스에선 그거 못 쓰게 막아놓은 걸로 알고 있음 =ㅅ=;
결국 다시 more/less 태그로 돌아와서 끙끙댔습니다. 그래, 내가 의지할 거라곤 이미 이글루스에서 잘 돌아간다고 검증된 저 태그 뿐이로구나 ㅇ<-<
사실, 코드를 이해하는 것 자체는 어렵지 않았습니다. 직관적이잖아요.
onclick="this.nextSibling.style.display=(this.nextSibling.style.display=='none')?'block':'none';
[ 이.다음 내용.의 디스플레이 스타일이 (이.다음 내용.의 디스플레이 스타일==안보이는 상태)이면 '보이게' / 아니면 '안 보이게 ]
일종의 if문.
그러니 onmouseover/out도 비슷하게 쓰면 되겠죠.
onmouseover=this.nextSibling.style.display='block' onmouseout=this.nextSibling.style.display='none'
마우스오버하면 이.다음 내용.이 '보이게' 마우스아웃하면 '안 보이게'
...문제는, 어디다 적용하느냐.
문제더군요.
일단, 제목에 적용했습니다. 제목에 마우스를 대면 본문이 보이고 떼면 감춰지게.
그랬더니 되긴 되는데, 마우스를 뗄 때 너무 빨리 감춰져버린다는 문제가 생겼습니다. orz
그러니까,

그래서 그 다음엔 태그를 제목과 내용 모두에 적용해봤죠. 노란 부분에 마우스가 있을 때에도 내용이 꺼지지 않도록.
<h3 class="posttitle" onmouseover=this.nextSibling.style.display='block'; onmouseout=this.nextSibling.style.display='none';><$mntitle$></h3><DIV style='display:none;' onmouseover=this.style.display='block'; onmouseout=this.style.display='none';><div class="content"><$mnbody$></div></div>
그런데,
그래도 꺼지더군요 orz
좌우지간 제목을 벗어나면 그 순간 노란 부분이 꺼져버리더라고요. 내용에 가기도 전에.
한참 마우스를 움직이다보니 어떤 전광석화같은 타이밍이 있어서 노란 부분이 미처 꺼지기 전에 마우스가 닿으면, 그 때는 제목과 멀리 떨어져도 노란 부분이 꺼지지 않았습니다.
하지만 그건 극히 드문 일이라는 게 문제.
으으으 orz
이를 어쩌나 이를 어쩌나.
다른 방법은 모르는데. 프로그램 같은 거 짤 줄도 모르고 이글루스에선 적용도 안된다니까.
한참을 끙끙대며 고민하는데....
갑자기 번쩍 든 생각.
"겹치게 해보자"
그러니까 저게, 내용 부분에 마우스가 가기 전에 제목을 벗어나 버리니까 꺼지는 거잖아요?
그럼 제목을 완전히 벗어나기 전에 노란 부분이 시작되게 하면 되는 거 아닌가. 일단 마우스가 노란 곳에 닿은 뒤에는 제목에서 벗어나도 안 꺼지니까.
즉각 제목과 내용을 살짝 겹치게 해봤습니다. 그랬더니 되더군요. 원하던 대로,
제목에 마우스를 대면 내용이 보이고 마우스를 움직이면 내용이 탐색되고
마우스를 떼면 내용이 감춰지는.
오오,
됐다 됐다~~~ 이제 됐다~~~~ (o^∇^o) (*▽) \(^▽^)/ (=´▽`=) (*´∇`*) (* ̄∇ ̄*) (**) (*''*)ふふっ♪ (*'-'*) ('-'*) (∇^*) ♪ (-*)♪ (*▽*) ☆(∇☆)(☆∇)☆ !!
겹치는 게 조금 아쉽긴 하지만(안 겹치는 게 더 예뻐서;;) 그래도 되는 게 어디냐. 헥헥헥;;;
그리하여,
처음 이 포스트잇 스킨을 구상할 때 바랐던 형태를 완성했습니다 >ㅁ<)/
원래 메뉴를 마우스 롤오버로 하고 싶었거든요. 할 줄 몰라서 클릭으로 했지.
그런데 찾아보니까 있네요 역시. 다 방법이 있다는! >_<
으하하하 완성이다~~~ >ㅁ<)/
※ 이 마우스 롤오버 메뉴 소스는 다른 스킨에도 적용할 수 있습니다.다만 본문에 있다시피 제목과 내용을 살짝 겹치도록 css 소스를 조정해주는 게 필수.
※ 추가 : 겹치지 않아도 되는 방법을 알아냈습니다. 이, 이, 이런, 그게 다 삽질이었다니~~~~;;;;;;;;;
분홍메뉴와 노란본문을 적절히 겹치게 해야 했던 까닭은 익스6에서 마우스오버가 분홍상자가 아닌 상자 내 텍스트(제목 글씨)에 걸렸기 때문이었습니다. (파폭과 크롬은 분홍상자에 걸림)
분홍상자와 노란상자는 붙어있어도 제목 글씨와 노란색이 다소 떨어져있다 보니, 그 사이를 마우스로 이동할 때 노란상자가 꺼져버리는 것이었거든요.
그래서 별수없이 제목글씨랑 노란상자가 붙을 정도로 노란상자를 위로 끌어올려야 했습니다.
그런데, 알고보니 익스6에서도 마우스오버를 제목 글씨 말고 분홍상자에 걸 수 있었네요 orz
원래 소스, 그러니까 저 위에서 한참 삽질할 때의 소스에서는 분홍상자에 너비(width)를 따로 지정하지 않았습니다. 안 지정해도 잘 나왔거든요; 그래서 아무 생각이 없었는데.... 너비를 width : @@px라고 정확히 지정해주고나니 이제는
익스6에서도 마우스오버가 분홍상자에 걸리네요 orz
그래서 분홍상자에 width값을 지정해주고 노란상자와 붙여놓으니, 겹치지 않아도 롤오버/아웃 작동이 잘 됩니다 orz
사, 삽질이었다~~~~~ ;ㅁ;ㅁ;ㅁ;ㅁ;
...뭐, 뒤늦게라도 알아내서 다행인가 -_-;;;
근데 이게 익스7에서도 잘 보이는지 모르겠네요. 익스7을 지워버려서;; 파폭/크롬/익스6에서만 살펴봤는데...
익스7 사용자 분, 문제없이 잘 보이시나요? 잘 보인다고 함. 오케.
그 삽질의 기록 ㄱ-
.
.
.
.
.
처음에, 제목을 클릭하면 내용이 나오게 하는 것은 다들 아시는 more/less 태그를 이용한 것이었습니다.
html 소스 중 메뉴 소스 부분을 보면
<h3 class="posttitle"><$mntitle$></h3>
<div class="content"><$mnbody$></div>
이렇게 되어 있는데 그걸
<h3 class="posttitle" onclick="this.nextSibling.style.display=(this.nextSibling.style.display=='none')?'block':'none';"><$mntitle$></h3><DIV style='display:none'><div class="content"><$mnbody$></div></div>
이렇게 해 준 거죠.
처음엔 좋더군요.
하지만,
시간이 지날수록
마우스를 클릭해야 메뉴가 보이는게 귀찮아졌습니다. -,.-;;
마우스를 '대기만 해도' 메뉴가 쫙 보이면 얼마나 좋을까.
이글루스 메인 화면에 보면 <테마 전체보기>라는 메뉴 있잖아요. 그것도 마우스를 대면 내용이 주륵 나오거든요. 방법이 분명 있을텐데. 있을텐데. 있을텐데에에에~~~~~ ;ㅇ;ㅇ;ㅇ;
...그래서 뒤지기 시작.
일단 이글루스 메인 화면의 소스를 분석해보는 것부터 시작했습니다.
시작했는데... 봐봤자 알 수가 없더군요 orz
한가지 건진 거라곤 저 <onclick>비슷한 <onmouseover>와 <onmouseout>이라는 명령어가 있다는 것뿐.
(아니, 그게 어디냐. 제일 중요한 핵심인데.)
직관적인 이름으로 보건데 onclick이 마우스'클릭'이었으니 onmouseover와 out는 마우스'오버'/'아웃'이렷다.
그래서 onmouseover/out 관련글을 줄창 뒤지기 시작.
...뒤져도 잘 모르겠더이다 orz
대부분 뭔가 자바스크립트 프로그램에서 쓰이고 있는데, 자바스크립트 같은 거 알지도 못하거니와 이글루스에선 그거 못 쓰게 막아놓은 걸로 알고 있음 =ㅅ=;
결국 다시 more/less 태그로 돌아와서 끙끙댔습니다. 그래, 내가 의지할 거라곤 이미 이글루스에서 잘 돌아간다고 검증된 저 태그 뿐이로구나 ㅇ<-<
사실, 코드를 이해하는 것 자체는 어렵지 않았습니다. 직관적이잖아요.
onclick="this.nextSibling.style.display=(this.nextSibling.style.display=='none')?'block':'none';
[ 이.다음 내용.의 디스플레이 스타일이 (이.다음 내용.의 디스플레이 스타일==안보이는 상태)이면 '보이게' / 아니면 '안 보이게 ]
일종의 if문.
그러니 onmouseover/out도 비슷하게 쓰면 되겠죠.
onmouseover=this.nextSibling.style.display='block' onmouseout=this.nextSibling.style.display='none'
마우스오버하면 이.다음 내용.이 '보이게' 마우스아웃하면 '안 보이게'
...문제는, 어디다 적용하느냐.
문제더군요.
일단, 제목에 적용했습니다. 제목에 마우스를 대면 본문이 보이고 떼면 감춰지게.
그랬더니 되긴 되는데, 마우스를 뗄 때 너무 빨리 감춰져버린다는 문제가 생겼습니다. orz
그러니까,

어쩌라고 orz
그래서 그 다음엔 태그를 제목과 내용 모두에 적용해봤죠. 노란 부분에 마우스가 있을 때에도 내용이 꺼지지 않도록.
<h3 class="posttitle" onmouseover=this.nextSibling.style.display='block'; onmouseout=this.nextSibling.style.display='none';><$mntitle$></h3><DIV style='display:none;' onmouseover=this.style.display='block'; onmouseout=this.style.display='none';><div class="content"><$mnbody$></div></div>
그런데,
그래도 꺼지더군요 orz
좌우지간 제목을 벗어나면 그 순간 노란 부분이 꺼져버리더라고요. 내용에 가기도 전에.
한참 마우스를 움직이다보니 어떤 전광석화같은 타이밍이 있어서 노란 부분이 미처 꺼지기 전에 마우스가 닿으면, 그 때는 제목과 멀리 떨어져도 노란 부분이 꺼지지 않았습니다.
하지만 그건 극히 드문 일이라는 게 문제.
으으으 orz
이를 어쩌나 이를 어쩌나.
다른 방법은 모르는데. 프로그램 같은 거 짤 줄도 모르고 이글루스에선 적용도 안된다니까.
한참을 끙끙대며 고민하는데....
갑자기 번쩍 든 생각.
"겹치게 해보자"
그러니까 저게, 내용 부분에 마우스가 가기 전에 제목을 벗어나 버리니까 꺼지는 거잖아요?
그럼 제목을 완전히 벗어나기 전에 노란 부분이 시작되게 하면 되는 거 아닌가. 일단 마우스가 노란 곳에 닿은 뒤에는 제목에서 벗어나도 안 꺼지니까.
즉각 제목과 내용을 살짝 겹치게 해봤습니다. 그랬더니 되더군요. 원하던 대로,
제목에 마우스를 대면 내용이 보이고 마우스를 움직이면 내용이 탐색되고
마우스를 떼면 내용이 감춰지는.
오오,
유레카!!! >ㅁ<
됐다 됐다~~~ 이제 됐다~~~~ (o^∇^o) (*▽) \(^▽^)/ (=´▽`=) (*´∇`*) (* ̄∇ ̄*) (**) (*''*)ふふっ♪ (*'-'*) ('-'*) (∇^*) ♪ (-*)♪ (*▽*) ☆(∇☆)(☆∇)☆ !!
겹치는 게 조금 아쉽긴 하지만(안 겹치는 게 더 예뻐서;;) 그래도 되는 게 어디냐. 헥헥헥;;;
그리하여,
처음 이 포스트잇 스킨을 구상할 때 바랐던 형태를 완성했습니다 >ㅁ<)/
원래 메뉴를 마우스 롤오버로 하고 싶었거든요. 할 줄 몰라서 클릭으로 했지.
그런데 찾아보니까 있네요 역시. 다 방법이 있다는! >_<
으하하하 완성이다~~~ >ㅁ<)/
※ 이 마우스 롤오버 메뉴 소스는 다른 스킨에도 적용할 수 있습니다.
※ 추가 : 겹치지 않아도 되는 방법을 알아냈습니다. 이, 이, 이런, 그게 다 삽질이었다니~~~~;;;;;;;;;
분홍메뉴와 노란본문을 적절히 겹치게 해야 했던 까닭은 익스6에서 마우스오버가 분홍상자가 아닌 상자 내 텍스트(제목 글씨)에 걸렸기 때문이었습니다. (파폭과 크롬은 분홍상자에 걸림)
분홍상자와 노란상자는 붙어있어도 제목 글씨와 노란색이 다소 떨어져있다 보니, 그 사이를 마우스로 이동할 때 노란상자가 꺼져버리는 것이었거든요.
그래서 별수없이 제목글씨랑 노란상자가 붙을 정도로 노란상자를 위로 끌어올려야 했습니다.
그런데, 알고보니 익스6에서도 마우스오버를 제목 글씨 말고 분홍상자에 걸 수 있었네요 orz
원래 소스, 그러니까 저 위에서 한참 삽질할 때의 소스에서는 분홍상자에 너비(width)를 따로 지정하지 않았습니다. 안 지정해도 잘 나왔거든요; 그래서 아무 생각이 없었는데.... 너비를 width : @@px라고 정확히 지정해주고나니 이제는
익스6에서도 마우스오버가 분홍상자에 걸리네요 orz
그래서 분홍상자에 width값을 지정해주고 노란상자와 붙여놓으니, 겹치지 않아도 롤오버/아웃 작동이 잘 됩니다 orz
사, 삽질이었다~~~~~ ;ㅁ;ㅁ;ㅁ;ㅁ;
...뭐, 뒤늦게라도 알아내서 다행인가 -_-;;;
익스7 사용자 분, 문제없이 잘 보이시나요?





덧글
슈와 2008/09/21 14:37 # 답글
텍스트에 거시지 말고 상위(div?)에 걸수 있으면 더 편할꺼 같습니다 ^^; 근데 소스 수정을 한번도 안해봐서 구조를 잘 모르겠네요;;
샐리 2008/09/21 15:33 #
고쳤습니다 ^^크롬과 파폭에서는 말씀하신대로 분홍상자에 걸려있었는데 익스6에서는 텍스트에 걸려있더라고요.
뭐가 문제인가 하고 살펴보다가, 분홍상자 css에 width값을 따로 안 줬다는 걸 알고(그냥 주위 폭에 따라서 사이즈가 결정되도록 가변으로 놔뒀거든요) width값을 고정값(133px)으로 지정했더니, 이제는 익스6에서도 분홍상자에 롤오버가 걸리네요. (익스7은 확인 못했음... 잘 보이려나 모르겠네요;)
width값을 지정하느냐 안 하느냐가 차이를 가져오다니... 알면 알수록 모르는 것 투성이인 소스의 세계입니다 orz
이젤론 2008/09/21 14:45 # 답글
유레카!!!
샐리 2008/09/21 15:16 #
유레카!! ㅠㅁㅠ 고생했습니다 ㅠㅠㅠ
심연 2008/09/21 16:03 # 답글
오, 지난번에는 다음 메뉴로 이동을 해도 상자가 계속 떠 있었는데 이번에는 안 그러네요. 매일매일 진화하는 스킨이로군요!
샐리 2008/09/21 18:08 #
예, 이제 거의 제가 의도했던 모습이 다 완성된지라 공개를 해볼까 싶기도 한데,이건 공개해도 군더더기 설명이 많아서 사용하는데 꽤 번거로울듯;; 쓸 사람이 있을까 모르겠어요.
江湖人 2008/09/21 16:34 # 답글
계속 연재되는 강좌를 잘 보고 있답니다. 신기하네요. ^^
샐리 2008/09/21 18:09 #
감사합니다. ^^ 마침 새 강좌(?)를 하나 더 올렸으니 그것도 봐주세요.
슈와 2008/09/21 16:44 # 답글
다음번에는 그냥 visible='block'하시기보다 opacity(투명도)를 0에서 100으로 setTimeout으로 딜레이주면서 조금씩 올리면..짜자잔 하면서 div가 슬그머니 나오게 할 수도 있으니.. 시간 많으실때 도전해보심이~_~
열심히 하시는 모습 보고 응원하는 한명이었습니다 ( ..)
샐리 2008/09/21 18:10 #
헤에, 따로 프로그램을 짜지 않고 저런 한줄짜리 소스에 그런 복잡한 기능도 넣을 수 있나요? 신기하네요. 'ㅁ' 말씀듣고 잠깐 찾아봤는데 저로서는 어떻게 하는 건지 짐작이 안 간다는....;; 슈와님이올려주시면 안될까요? ^^;;응원 감사합니다. >_<
2008/09/21 17:02 # 답글
비공개 덧글입니다.
샐리 2008/09/21 18:11 #
익스7에서 잘 보이는군요. 알려주셔서+토닥토닥해주셔서 감사합니다 >_<
은혈의륜 2008/09/21 21:50 # 답글
느....능력자! 이런능력을 소유하셨다니 부럽습니다. 저는 저런거 몰라서 그냥 기본 공개 스킨 쓴다능 ㅠㅠ
샐리 2008/09/23 11:52 #
저도 하면서 하나씩 배워가는 수준인걸요 ^^; 은혈의륜님도 정말 만들고 싶은 스킨이 생기시면 그땐 금방 익히실 수 있을 거예요.