Показать сообщение отдельно
  #1 (permalink)  
Старый 20.11.2010, 01:00
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 20.11.2010
Сообщений: 143

Аналог события ActionScript onPress в javaScript
Разработал себе масштабируемый див, кому надо берите, но столкнулся с проблемой, не знаю как заменить событие onPress, чтобы масштабирование и прочие действия осуществлялись в результате клика мышкой и перетаскивания. Событие onMouseDown срабатывает единожды при нажатии на кнопку мыши, рекурсивный вызов функции тоже не помог. Подскажите как можно в джаве это реализовать?

<style>
  .test
  {
	font-weight:bold;
	width:120px;
	height:100px;
	top:100px;
	left:100px;
	position: absolute;
  }
  .test2
  {
  	background-color:#00FF00;
  }
  .test3
  {
  	background-color:#f00000;
  }
  
</style>

<script language="JavaScript">

    var xpos;
    var ypos;
    var mas_old_posX;
    var mas_old_posY;

    function imouse()
    {
       ypos=event.y+document.body.scrollTop;
       xpos=event.x+document.body.scrollLeft;
    }
    
	  
	function mas_drag()
    {
      document.onmousemove=imouse;
      
      var mas_width_t=document.getElementById("1").currentStyle.width
      
      document.getElementById(1).style.top=ypos-10;
      document.getElementById(1).style.left=xpos-parseInt(mas_width_t)/2;
    }
	
	function mas_resize(axis)
  {
      document.onmousemove=imouse;
      
      alert("1");
      var mas_width = 0;
      var mas_height = 0;    
//растягивание по горизонтали
    if(axis == 1)
    {
      mas_width=document.getElementById("1").currentStyle.width;
      
      if(mas_old_posX>xpos)
      {
        document.getElementById("1").style.width=parseInt(mas_width)-2;
      }
      else
      {
        document.getElementById("1").style.width=parseInt(mas_width)+2;
      }
      mas_old_posX= xpos;
    }
       
//растягивание по вертикали
    if(axis == 2)
    {
      mas_height=document.getElementById("1").currentStyle.height;
      
      if(mas_old_posY>ypos)
      {
        document.getElementById("1").style.height=parseInt(mas_height)-2;
      }
      else
      {
        document.getElementById("1").style.height=parseInt(mas_height)+2;
      }
      mas_old_posY= ypos;      
    }

//растягивание в обе стороны    
    if(axis == 3)
    {
       mas_width=document.getElementById("1").currentStyle.width;
       mas_height=document.getElementById("1").currentStyle.height;
      
      if(mas_old_posX>xpos)
      {
        document.getElementById("1").style.width=parseInt(mas_width)-2;
      }
      else
      {
        document.getElementById("1").style.width=parseInt(mas_width)+2;
      }
      
      if(mas_old_posY>ypos)
      {
        document.getElementById("1").style.height=parseInt(mas_height)-2;
      }
      else
      {
        document.getElementById("1").style.height=parseInt(mas_height)+2;
      }

      mas_old_posY= ypos;  
      mas_old_posX= xpos;

    }
  } 
  
</script>
<html>
<body>
<table width = "100%" height = "100%" >
<tr>
<td id="pos">
&nbsp
</td>
</tr>
<tr>
<td>
<div id = "1" class = "test" >
<table width="100%" height="100%" border="1" class = "test3">
<tr class="test2" onMouseMove="mas_drag()">
<td colspan="2">
перетаскивание
</td>
</tr>
<tr>
<td>
123
</td>
<td width="20" onMouseMove="mas_resize(1)">
1
</td>
</tr>
<tr>
<td height="20" onMouseMove="mas_resize(2)">
1
</td>
<td onMouseMove="mas_resize(3)">
2
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
	
</body>
</html>
Ответить с цитированием