Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
291 views
in Technique[技术] by (71.8m points)

javascript - Add a little padding to a centered rectangle on the Canvas with a sidebar

I know how to center a rectangle on the Canvas. I have already seen How do I center a rectangle on a canvas but I also have a 250px sidebar.

I have the following code:

<Rect
  width={browser.width}
  height={browser.height}
  x={(win.width - 250 - browser.width) / 2}
  y={(win.height - browser.height) / 2}
  fill="papayawhip"
/>

Where win.width equals to window.innerWidth, respectively win.height equals to window.innerHeight.

browser.width equals to win.width - 250 where 250 is my sidebar width.

I did what the answer said canvasWidth/2 - rectangleWidth/2. My canvasWidth is win.width - 250 & rectangleWidth is browser.width.

How do I add a little padding to the papayawhip rectangle?

Here's a minimal Codesandbox → https://codesandbox.io/s/add-padding-to-centered-canvas-with-sidebar-gqhhl

center papayawhip


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I found the answer while framing the question so I'll just post it.

I had to make a pad variable & subtract it from rectangle width & add the half of it to x position like:

const pad = 50
<Rect
  width={browser.width - pad}
  height={browser.height}
  x={pad / 2}
  y={(win.height - browser.height) / 2}
  fill="papayawhip"
/>

add little padding on either side of canvas


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...