Menu

아래위서 나오는

2016. 5. 30. 02:00

안개핑 Javascript

 

 

<html>
<head>
<title>javascript</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<link rel="stylesheet" href="style.css">

<script language="JavaScript">
<!--
function namosw_page_left(element)
{
  if (navigator.appName.indexOf('Netscape', 0) != -1) {
    x = element.pageX;
  } else {
    x = element.offsetLeft;
    for (el = element.offsetParent; el; el = el.offsetParent)
      x += el.offsetLeft;
  }
  return x;
}

function namosw_page_top(element)
{
  if (navigator.appName.indexOf('Netscape', 0) != -1) {
    y = element.pageY;
  } else {
    y = element.offsetTop;
    for (el = element.offsetParent; el; el = el.offsetParent)
      y += el.offsetTop;
  }
  return y;
}

function namosw_page_right(el) {
  wid =  (navigator.appName.indexOf('Netscape', 0) != -1) ? window.innerWidth : document.body.offsetWidth;
  return wid - namosw_page_left(el);
}

function namosw_page_bottom(el) {
  hei =  (navigator.appName.indexOf('Netscape', 0) != -1) ? window.innerHeight : document.body.offsetHeight;
  return hei - namosw_page_top(el);
}

function namosw_set_visible(el, flag) {
  if (navigator.appName.indexOf('Netscape', 0) != -1) {
    el.visibility = flag ? 'show' : 'hide';
  } else {
    el.style.visibility = flag ? 'visible' : 'hidden';
  }
}

function namosw_set_pos(el, x, y)
{
  if (navigator.appName.indexOf('Netscape', 0) != -1) {
    el.left = x;
    el.top  = y;
  } else {
    el.style.pixelLeft = x;
    el.style.pixelTop  = y;
  }
}

function namosw_left(el) {
  return (navigator.appName.indexOf('Netscape', 0) != -1) ? el.left : el.style.pixelLeft;
}

function namosw_top(el) {
  return (navigator.appName.indexOf('Netscape', 0) != -1) ? el.top : el.style.pixelTop;
}

function namosw_is_relative(el) {
  return (navigator.appName.indexOf('Netscape', 0) != -1) ? el.position == 'relative' :
                                             el.style.position == 'relative';
}

function namosw_is_space(c)
{
  return (c == ' ' || c == '\t' || c == '\r' || c == '\n');
}

function namosw_process_byword(list, index)
{
  var el = list[index];
  if (navigator.appName.indexOf('Netscape', 0) != -1)
    return;
  if (!el)
    return;
  if (el.byword == false)
    return;

  var dest = "";
  var src = el.innerHTML;
  var objNum = document.NamoAnimationObjects.length;
  var wordi = 0, i = 0, mark;
  while (i < src.length) {
    mark = i;
    while (i < src.length) {
      while (i < src.length && namosw_is_space(src.charAt(i))) i++;
      if    (i < src.length && src.charAt(i) != '<') break;
      while (i < src.length && src.charAt(i) != '>') i++;
      if    (i < src.length && src.charAt(i) == '>') i++;
    }
    dest += src.substring(mark, i);
    if (i >= src.length) break;
    dest += '<span id=\"' + el.name + 'word' + (wordi+1) + '\" style=\"position:relative\">';
    mark = i;
    while (i < src.length && !namosw_is_space(src.charAt(i)) && src.charAt(i) != '<') i++;
    while (i < src.length && namosw_is_space(src.charAt(i)) == ' ') i++;
    if (el.byword == false) while (i < src.length && src.charAt(i) != '<') i++;
    dest += src.substring(mark, i);
    dest += '</span>';
    wordi++;
  }
  el.innerHTML = dest;
  el.posLeft   = 0;
  el.style.visibility = 'visible';

  list[index] = namosw_new_animation_object(el.name+'word1', el.startCondObj, el.startCondTime,
el.startXPos, el.startYPos, el.pathType, false, el.zoom, el.stepNum);
  for (i = 1; i < wordi; i++) {
    list[objNum+i-1] = namosw_new_animation_object(el.name+'word'+(i+1), (el.byword ? (el.name+'word'+i) : el.startCondObj), (el.byword ? 0 : el.startCondTime), el.startXPos, el.startYPos, el.pathType, false, el.zoom, el.stepNum);
    list[objNum+i-1].style.posLeft = 0;
    list[objNum+i-1].style.visibility = 'visible';
  }
  el.startCondTime = -1;
}

function namosw_new_animation_object(name, obj, time, xpos, ypos, path, byword, zoom, stepNum)
{
  var str = (navigator.appName.indexOf('Netscape', 0) != -1) ? 'document.'+name : 'document.all[\''+name+'\']';
  var object;

  if (name == '') return 0;

  object = eval(str);
  if (!object) return 0 ;

  object.name     = name;
  object.startCondObj  = obj;
  object.startCondTime = time;
  object.startXPos     = xpos;     // left, center, right
  object.startYPos     = ypos;     // top,  center, bottom
  object.pathType      = path;     // line, arc, spiral
  object.byword        = byword;   // true, false
  object.zoom          = zoom;
  object.stepNum       = stepNum;
  return object;
}

function namosw_animate(str)
{
  var live_object_num = 0;
  for (var i = 0; i < document.NamoAnimationObjects.length; i++) {
    var el = document.NamoAnimationObjects[i];
    if (!el) continue;
    if (el.countDown > 0) {
      el.countDown = (0 < el.countDown-10) ? el.countDown-10 : 0;
      live_object_num++;
      continue;
    }
    if (el.countDown < 0)
      continue;

    if (el.pathType == 'line') {
      newx = el.sx + el.step * (el.ex - el.sx) / el.stepNum;
      newy = el.sy + el.step * (el.ey - el.sy) / el.stepNum;
    } else if (el.pathType == 'arc') {
      linex = el.sx + el.step * (el.ex - el.sx) / el.stepNum;
      liney = el.sy + el.step * (el.ey - el.sy) / el.stepNum;

      x = (el.ex + el.sx) / 2;
      y = (el.ey + el.sy) / 2;
      sinv = Math.sin(Math.PI*el.step/el.stepNum*(el.ex-el.sx > 0 ? -1:1));
      cosv = Math.cos(Math.PI*el.step/el.stepNum);
      newx = ((cosv*(el.sx-x) - sinv*(el.sy-y) + x) + linex) / 2;
      newy = ((sinv*(el.sx-x) + cosv*(el.sy-y) + y) + liney) / 2;
    } else if (el.pathType == 'spiral') {
      sinv = Math.sin(2*Math.PI*el.step/el.stepNum);
      cosv = Math.cos(2*Math.PI*el.step/el.stepNum);
      r = (el.stepNum-el.step)/el.stepNum;
      newx = el.ex + (cosv*(el.sx-el.ex) - sinv*(el.sy-el.ey))*r;
      newy = el.ey + (sinv*(el.sx-el.ex) + cosv*(el.sy-el.ey))*r;
    }
 if (el.style) {
      if (el.zoom == 'zoomin')
        el.style.fontSize = 50+50*el.step/el.stepNum + '%';
      else if (el.zoom == 'zoomout')
        el.style.fontSize = 200-100*el.step/el.stepNum + '%';
 }
    namosw_set_pos(el, newx, newy);
    namosw_set_visible(el, true);

    if (el.step++ == el.stepNum) {
      namosw_set_pos(el, el.ex, el.ey);
      el.step = 0;
      el.countDown = -1;
      // trigger other object(self can be trigger)
      for (var j = 0; j < document.NamoAnimationObjects.length; j++) {
        var obj = document.NamoAnimationObjects[j];
        if (obj.countDown < 0 && obj.startCondObj == el.name) {
          obj.countDown = obj.startCondTime;
          live_object_num++;
          if (i < j) {
            obj.countDown += 10;
            live_object_num--;
          }
        }
      }
    } else {
      live_object_num++;
    }
  }
  if (live_object_num > 0)
    window.setTimeout("namosw_animate();", 10);
}

function namosw_init_animation()
{
  var i    = 0;
  var list = new Array;

  list[i++] = namosw_new_animation_object('alayer2', 'alayer1', 0, 'center', 'top', 'line', false, null, 100);
  list[i++] = namosw_new_animation_object('alayer1', null, 0, 'center', 'bottom', 'line', false, null, 80);
  document.NamoAnimationObjects = list;

  var length = list.length;
  for (i = 0; i < length; i++)
    namosw_process_byword(list, i);

  for (i = 0; i < list.length; i++) {
    if (!list[i]) continue;
    list[i].countDown = (list[i].startCondObj == null) ? list[i].startCondTime : -1;
    list[i].step      = 0;
    list[i].sx        = (list[i].startXPos == 'left')  ? -namosw_page_left(list[i])  :
      (list[i].startXPos == 'right') ?  namosw_page_right(list[i]) : 0;
    list[i].sy        = (list[i].startYPos == 'top')   ? -namosw_page_top(list[i])   :
      (list[i].startYPos == 'bottom')?  namosw_page_bottom(list[i]): 0;
    list[i].ex      = 0;
    list[i].ey       = 0;
    if (!namosw_is_relative(list[i])) {
      list[i].sx += namosw_left(list[i]);
      list[i].sy += namosw_top(list[i]);
      list[i].ex += namosw_left(list[i]);
      list[i].ey += namosw_top(list[i]);
    }
    if (list[i].pathType == 'spiral') {
      list[i].sx = Math.max(-200+list[i].ex, Math.min(200+list[i].ex, list[i].sx));
      list[i].sy = Math.max(-200+list[i].ey, Math.min(200+list[i].ey, list[i].sy));
    }
    namosw_set_pos(list[i], list[i].sx, list[i].sy);
    namosw_set_visible(list[i], false);
  }
  window.setTimeout("namosw_animate();", 10);
}

// -->
</script>
</head>

<body link="#0000FF" vlink="#800080" alink="#FF0000" OnLoad="namosw_init_animation();" bgcolor="white">
<p align="center"> </p>
<p align="center">&nbsp;</p>
<p align="center" id="alayer2" style="position:relative; visibility:hidden;"><img src="http://lia.pe.kr/icon/icon/IlOVEU.gif" width="172" height="70" border="0"></p>
<p align="center" style="line-height:100%; margin-top:0; margin-bottom:0; position:relative; visibility:hidden;" id="alayer1"><img src="imge/watercolor33.gif" width="149" height="145" border="0"></p>
<p style="border-collapse:collapse;" align="center">&nbsp;</p>
<p align="center"><input type=button name=bt_s value="소스보기" onClick='window.location="view-source:"+window.location.href'>
</body>

</html>

 

'Javascript' 카테고리의 다른 글

대문으로 들어오기  (0) 2016.05.30
홈페이지 암호화 하기  (0) 2016.05.30
기간대별 메세지  (0) 2016.05.30
창이 줄었다 늘엇다  (0) 2016.05.30
링크된곳에 마우스 올리면 불꽃이 터져요.  (0) 2016.05.30