2017-01-27 9 views
2

Я хочу, чтобы только каждый второй прямоугольник вращался с помощью мыши, чтобы двигаться, что я делаю неправильно? Как я могу сделать свое преобразование так, чтобы высота и вращение изменялись только на каждый второй элемент? я попробовал его с если (я% 2 == 0) {}Javascript setAttribute для каждой секунды svg

function modifyRectangles(mouseX,mouseY) { 
for (var i = 0; i < myRects.length; i++) { 
// var sx = 1; 
var h = myRects [i].getAttribute("height"); 
if (i % 2 == 0){ 
    var angle = (mouseY) + 45; 
    var sy =(mouseY/10) + 0.5; 
} 



angle -= 45; 

myRects[i].setAttribute("transform", "translate(" + x + ", 100),  rotate("+angle+"), scale(1, " + sy + ")"); 
} 
} 
+2

Где остаток вашего кода? Пожалуйста, предоставьте [минимальный, ** полный ** и проверяемый пример] (http://stackoverflow.com/help/mcve) ** в самом вопросе **. Похоже, вы вычисляете поворот для каждого другого прямоугольника, но вы устанавливаете преобразование на * каждый * прямоугольник. –

+0

Как я могу установить преобразование для каждого второго элемента? –

+0

хорошо перемещающийся 'myRects [i] .setAttribute ("transform", "translate (" + x + ", 100), вращать (" + угол + "), масштаб (1," + sy + "), переводить (1, "+ (- ч/2) +") ");» в 'if (i% 2 == 0) {' будет вызывать его только на каждом другом svg. На эти вопросы трудно смотреть. попробуйте создать код, если вы действительно хотите быстрое решение. –

ответ

1

Вытащите только условие, а не код внутри скобок это:

if (i % 2 == 0){...} 

Тогда изменение ваш для цикла:

for (var i = 0; i < myRects.length; i +=2) {... 
+0

спасибо, что это помогло много –

+0

Добро пожаловать, сэр. Не забудьте проверить зеленый ✔ этого сообщения, если он решит вашу проблему. – zer00ne