위

[툴팁] 성능을 고려해서 jquery 와 자바스크립트를 잘 선택해서 사용해야합니다.

· 2012-11-28 (수) 12:17:08 · 5556 · 6


예를 들면 툴팁같은경우

jquery 를 쓰면 더 느리게 처리하는 경우가 있습니다.

그럴때는 순수 자바스크립트로만 툴팁을 적용하면 훨씬 빠른 효과를 얻을수있습니다.

// tooltip.js

[code]
var preview="";
var gobj="";
function attachEvent_(obj, evt, fuc, useCapture) {
  if(!useCapture) useCapture=false;
  if(obj.addEventListener) { // W3C DOM 지원 브라우저
    return obj.addEventListener(evt,fuc,useCapture);
  } else if(obj.attachEvent) { // MSDOM 지원 브라우저
    return obj.attachEvent("on"+evt, fuc);
  } else { // NN4 나 IE5mac 등 비 호환 브라우저
    MyAttachEvent(obj, evt, fuc);
    obj['on'+evt]=function() { MyFireEvent(obj,evt) };
  }
}
 
function detachEvent_(obj, evt, fuc, useCapture) {
  if(!useCapture) useCapture=false;
  if(obj.removeEventListener) {
    return obj.removeEventListener(evt,fuc,useCapture);
  } else if(obj.detachEvent) {
    return obj.detachEvent("on"+evt, fuc);
  } else {
    MyDetachEvent(obj, evt, fuc);
    obj['on'+evt]=function() { MyFireEvent(obj,evt) };
  }
}
 
function MyAttachEvent(obj, evt, fuc) {
  if(!obj.myEvents) obj.myEvents= {};
  if(!obj.myEvents[evt]) obj.myEvents[evt]=[];
  var evts = obj.myEvents[evt];
  evts[evts.length]=fuc;
}
 
function MyFireEvent(obj, evt) {
  if(!obj.myEvents || !obj.myEvents[evt]) return;
  var evts = obj.myEvents[evt];
  for (var i=0;i<len;i++) {
    len=evts.length;
    evts[i]();
  }
}
 
function previewShow(e, obj, pv) {
  preview=pv;
  gobj=obj;
  attachEvent_(obj, "mousemove", previewMove, false);
  attachEvent_(obj, "mouseout", previewHide, false);
}
 
function previewMove(e) {
  var hb = document.getElementById(preview);
  if(hb.parentElement) hb.parentElement.style.display="";
  else hb.parentNode.style.display="";
  var evt = e ? e : window.event;
  var posx=0;
  var posy=0;
 
  if (evt.pageX || evt.pageY) { // pageX/Y 표준 검사
    posx = evt.pageX +8;
    posy = evt.pageY +16;
  } else if (evt.clientX || evt.clientY) { //clientX/Y 표준 검사 Opera
    posx = evt.clientX +10;
    posy = evt.clientY +20;
    if (window.event) { // IE 여부 검사
      posx += document.body.scrollLeft;
      posy += document.body.scrollTop;
     }
  }
 
  hb.style.left = posx + "px";
  hb.style.top = posy + "px";
}
 
function previewHide() {
  var hb = document.getElementById(preview);
  if(hb.parentElement) hb.parentElement.style.display="none";
  else hb.parentNode.style.display="none";
 
  detachEvent_(gobj,"mousemove", previewMove, false);
}

[/code]


// test.html

[code]

<script src="tooltip.js" type="text/javascript"></script>
<style type="text/css">
 div.mouseView { width:150px; position:absolute; border:2px solid #ccc; font-size:12px; background-color:#fafafa; }
</style>

<a href="#" onmouseover="previewShow(event,this,'t_tip1');">마우스 오버</a>

<span style="display:none;">
 <div id="t_tip1" class="mouseView">툴팁내용(HTML가능)</div>
</span>

[/code]

 

 

|

댓글 6개

이 게시판은 [code] 가 안먹나보네요.
2012-11-28 (수) 16:00:43
감사합니다!
글씨가 넘 작아영 ㅠ
감사합니다..
편해서 쓰는거죠 ...
시누이 // 뭐 로딩중인줄알았네요....
jquery 일단 무겁죠..ㅎ
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
12-12-27 조회 4,093
12-12-27 조회 3,936
12-12-27 조회 3,767
12-12-27 조회 6,078
12-12-27 조회 3,643
12-12-27 조회 4,288
12-12-27 조회 8,740
12-12-27 조회 6,227
12-12-26 조회 5,449
12-12-26 조회 6,134
12-12-26 조회 4,216
12-12-24 조회 3,785
12-12-22 조회 3,955
12-12-21 조회 4,248
12-12-21 조회 3,200
12-12-20 조회 6,036
12-12-20 조회 6,860
12-12-20 조회 5,274
12-12-20 조회 1.1만
12-12-20 조회 3,298
12-12-20 조회 1.2만
12-12-20 조회 2만
12-12-20 조회 4,319
12-12-19 조회 3,605
12-12-18 조회 9,112
12-12-18 조회 3,610
12-12-18 조회 3,872
12-12-17 조회 3,434
12-12-17 조회 3,597
12-12-17 조회 3,929
12-12-17 조회 4,017
12-12-16 조회 3,945
12-12-15 조회 6,525
12-12-15 조회 5,021
12-12-15 조회 7,256
12-12-15 조회 5,919
12-12-15 조회 7,142
12-12-14 조회 4,893
12-12-14 조회 4,039
12-12-14 조회 4,034
12-12-12 조회 4,826
12-12-12 조회 7,927
12-12-12 조회 3,670
12-12-12 조회 6,681
12-12-12 조회 8,126
12-12-12 조회 4,312
12-12-12 조회 5,171
12-12-11 조회 4,531
12-12-11 조회 3,439
12-12-11 조회 5,360
12-12-11 조회 4,635
12-12-10 조회 3,684
12-12-10 조회 3,141
12-12-10 조회 6,098
12-12-10 조회 4,547
12-12-10 조회 2,971
12-12-10 조회 3,387
12-12-10 조회 1.1만
12-12-10 조회 7,689
12-12-10 조회 1만
12-12-10 조회 3,211
12-12-07 조회 4,190
12-12-07 조회 4,348
12-12-06 조회 4,101
12-12-05 조회 5,271
12-12-05 조회 3,854
12-12-04 조회 4,156
12-12-04 조회 2,948
12-12-03 조회 4,047
12-12-03 조회 3,881
12-12-03 조회 1.5만
12-12-02 조회 3,985
12-12-02 조회 7,263
12-12-02 조회 4,507
12-12-02 조회 3,509
12-12-01 조회 3,898
12-12-01 조회 6,668
12-12-01 조회 3,865
12-11-30 조회 7,675
12-11-30 조회 3,577
12-11-29 조회 3,775
12-11-29 조회 3,716
12-11-29 조회 1.1만
12-11-28 조회 4,318
12-11-28 조회 5,557
12-11-28 조회 4,667
12-11-27 조회 4,807
12-11-26 조회 4,989
12-11-26 조회 3,605
12-11-26 조회 3,790
12-11-26 조회 2만
12-11-25 조회 5,258
12-11-25 조회 7,311
12-11-25 조회 4,184
12-11-25 조회 5,208
12-11-23 조회 4,691
12-11-23 조회 1.9만
12-11-22 조회 3,440
12-11-22 조회 3,871
12-11-22 조회 3,714