Показать сообщение отдельно
  #1 (permalink)  
Старый 21.04.2010, 01:10
Интересующийся
Отправить личное сообщение для Drakonee Посмотреть профиль Найти все сообщения от Drakonee
 
Регистрация: 21.04.2010
Сообщений: 16

Перетаскивание рисунков
Подскажите ответ на такой вопрос:

есть скрипт для перетаскивания рисунков, вопрос такой - как сделать, например, всплывающее окно типа "правильно", если рисунки перетасканы правильно в определенных последовательностях. например есть рисунки стенка, крыша, труба. надо перетащить их так чтобы дверь находилась на стенке, крыша касалась верхней грани стенки, а труба касалась крыши. как это сделать? причем желательно чтобы сам домик не зависел от конкретной точки экрана, а только взаимное расположение рисунков играло роль.
если можно, пример из простейших деталей, например, два кубика соприкасаются гранями)

изначальный скрипт, позволяющий перетаскивать рисунки в любом порядке:

1. Создаём файлы таблицы стилей drag.css:
.drag{
position:relative;
cursor:hand;
z-index: 100;
}


подгружаем:
<link rel="stylesheet" href="ПУТЬ К ФАЙЛУ/drag.css" type="text/css" />


2. Сам скрипт drag.js написанный на языке javascript:
var dragobject={
z: 0, x: 0, y: 0, offsetx : null, offsety : null, targetobj : null, dragapproved : 0,
initialize:function(){
document.onmousedown=this.drag
document.onmouseup=function(){this.dragapproved=0}
},

drag:function(e){

var evtobj=window.event? window.event : e
this.targetobj=window.event? event.srcElement : e.target
if (this.targetobj.className=="drag"){
this.dragapproved=1 
if (isNaN(parseInt(this.targetobj.style.left))){this. targetobj.style.left=0}
if (isNaN(parseInt(this.targetobj.style.top))){this.t argetobj.style.top=0}

this.offsetx=parseInt(this.targetobj.style.left)
this.offsety=parseInt(this.targetobj.style.top)
this.x=evtobj.clientX
this.y=evtobj.clientY
if (evtobj.preventDefault)
evtobj.preventDefault()
document.onmousemove=dragobject.moveit
}
},

moveit:function(e){
var evtobj=window.event? window.event : e
if (this.dragapproved==1){
this.targetobj.style.left=this.offsetx+evtobj.clie ntX-this.x+"px"
this.targetobj.style.top=this.offsety+evtobj.clien tY-this.y+"px"
return false
}
}

}
dragobject.initialize()


подгружаем:
<script language="JavaScript" type="text/javascript" src="ПУТЬ К ФАЙЛУ/drag.js"></script>


3. Вставляем файлы с изображениями в нужное место:
<img src="ПУТЬ К ФАЙЛУ1/1.png" class="drag">
<img src="ПУТЬ К ФАЙЛУ2/2.png" class="drag">
<img src="ПУТЬ К ФАЙЛУ3/3.png" class="drag">

Последний раз редактировалось Drakonee, 21.04.2010 в 12:03.
Ответить с цитированием