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

Как сделать поворот DIV клонов
Здравствуйте. Вот такой вот возник вопрос. Но как решить не знаю.
Сама модель такова: есть картинка которая спрятана и появляется тогда когда нажимают на кнопку. Плюс её можно клонировать нажав еще раз на кнопку либо удалить. При этом картинку можно перемещать по экрану. Вот это все получилось.

А теперь еще нужно что бы картинка поворачивалась в разные стороны. И это получилось (рядом с картинкой кнопка с круговой стрелкой нажав на нее можно вращать картинку) но этот механизм применим только к одной картинке, если она находится за пределами дива который клонирует его.

А вот как сделать так, что бы можно было крутить любую из клонированных картинок не пойму.

Вот сам код.
Подключенные скрипты:
<link rel="stylesheet" href="drag.css" type="text/css" />
    <script language="JavaScript" type="text/javascript" src="drag.js"></script>
	
	<script src="jquery.ui.rotatable.js"></script>
	<link rel="stylesheet" href="jquery.ui.rotatable.css">

Скрипт поворота:
$(document).ready(function() {
        var params = {
            start: function(event, ui) {
                console.log("Rotating started");
            },
            rotate: function(event, ui) {
                console.log("Rotating");
            },
            stop: function(event, ui) {
                console.log("Rotating stopped");
            },
        };

        $('#target').rotatable( {handle: $(document.createElement('img')).attr('src', 'alternate_rotate.png')} );


		});

Тело:
<style>
#template{
    display: none;
}
 
</style>
<div id="template">

    <div class="block">
	<div class="drag" id="target" style="width: 250px;  padding: 20px; padding-right: 40px; margin-top: 20px"><img  src="1.png"></div>
        <button class="remove">-</button>
   
    </div>
</div>

<button id="add">add +</button>
<div id="wrapper"></div>

И скрипт клонирования:
$(function(){
    var block = $('#template').children('.block'),
        wrapper = $('#wrapper'),
        addItem = $('#add');

    addItem.on('click', function(){
        var newItem = block.clone();
        wrapper.append( newItem );
        newItem.children('.remove').on('click', function(){
            newItem.remove();
        });
    });
});


Да а для перемещения картинок я использую этот скрипт(это содержание drag.js):
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.targetobj.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.clientX-this.x+"px"
this.targetobj.style.top=this.offsety+evtobj.clientY-this.y+"px"
return false
}
}
}
dragobject.initialize()


Не знаю правильно или нет я догадываюсь, что нужно вместо id в скрипте по повороту картинок сделать класс, что бы было применимо ко всем картинкам, но как это сделать что то не соображу.
Ответить с цитированием