Search code examples
javascriptphotoshopphotoshop-script

Photoshop move layer along y-axis


I'm working on a script that will move a layer, right, left, up, or down. This depends upon which edge of the layer is inside the canvas.

I've managed to get the layer moving left and right (x-axis) using bounds[0] and bounds[2].

But when I try to get it to move up or down, it still moves left/right. Is it the bounds number I've got wrong?

var Y1 = bounds[3].as('px');
var Height = app.activeDocument.height.as('px');

//move down
if (Y1 < Height) {
activeDocument.activeLayer.translate(Height-Y1); 
}

Solution

  • The first thing you probably want to do in a situation like this is to check the documentation. For .translate() we can find the following:

    enter image description here

    so to move horizontally we would use deltaX and to move vertically deltaY, in your code you're giving to .translate() only deltaX, so as expected your layer is being moved horizontally. To fix this pass 0 as a first argument and your Height-Y1 as a second one:

    activeDocument.activeLayer.translate(0, Height - Y1);