JavaScript rounded rectangle settings

WBOY
Release: 2023-05-12 18:29:08
Original
1134 people have browsed it

In web design and development, rounded rectangles are often used to beautify the interface, and JavaScript is one of the common tools to achieve this effect. This article will introduce how to use JavaScript to set the rounded rectangle effect.

1. CSS to implement rounded rectangle

Before introducing JavaScript to implement rounded rectangle, let’s first understand how CSS implements rounded rectangle. The border-radius property introduced in CSS3 can easily set the rounded corner size of elements. For example:

div {
    border-radius: 10px;
}
Copy after login

This will make a div element have a 10px rounded corner effect on all four corners. If you only want to set rounded corners for a certain corner, you can use the following code:

div {
    border-top-left-radius: 10px;
    border-top-right-radius: 20px;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 15px;
}
Copy after login

This will make the rounded corners of the upper left corner, upper right corner, lower left corner and lower right corner of the div element 10px and 20px respectively. , 5px and 15px.

2. JavaScript to implement rounded rectangle

If you need to dynamically create a rounded rectangle in JavaScript, you can use the canvas element. Canvas is a tag in HTML5 that can be used to draw graphics, animations, etc.

The following are the steps to draw a rounded rectangle using JavaScript and Canvas:

  1. Get the canvas element and its context object;
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
Copy after login
  1. Draw a path and set the rounded corner size of the rounded rectangle;
ctx.beginPath();
ctx.moveTo(x + cornerRadius, y);
ctx.lineTo(x + width - cornerRadius, y);
ctx.arcTo(x + width, y, x + width, y + cornerRadius, cornerRadius);
ctx.lineTo(x + width, y + height - cornerRadius);
ctx.arcTo(x + width, y + height, x + width - cornerRadius, y + height, cornerRadius);
ctx.lineTo(x + cornerRadius, y + height);
ctx.arcTo(x, y + height, x, y + height - cornerRadius, cornerRadius);
ctx.lineTo(x, y + cornerRadius);
ctx.arcTo(x, y, x + cornerRadius, y, cornerRadius);
Copy after login
  1. Set the fill and stroke color, width and other attributes;
ctx.fillStyle = "#ff0000";  // 填充颜色
ctx.strokeStyle = "#000";   // 描边颜色
ctx.lineWidth = borderSize; // 描边宽度
Copy after login
  1. Fill or stroke the path. You can use both the fill and stroke methods, or just one of them.
ctx.fill();     // 填充路径
ctx.stroke();   // 描边路径
Copy after login

To sum up, the JavaScript code of the entire drawing process is as follows:

function drawRoundedRect(x, y, width, height, cornerRadius, borderSize) {
    var canvas = document.getElementById("myCanvas");
    var ctx = canvas.getContext("2d");

    // 绘制路径
    ctx.beginPath();
    ctx.moveTo(x + cornerRadius, y);
    ctx.lineTo(x + width - cornerRadius, y);
    ctx.arcTo(x + width, y, x + width, y + cornerRadius, cornerRadius);
    ctx.lineTo(x + width, y + height - cornerRadius);
    ctx.arcTo(x + width, y + height, x + width - cornerRadius, y + height, cornerRadius);
    ctx.lineTo(x + cornerRadius, y + height);
    ctx.arcTo(x, y + height, x, y + height - cornerRadius, cornerRadius);
    ctx.lineTo(x, y + cornerRadius);
    ctx.arcTo(x, y, x + cornerRadius, y, cornerRadius);

    // 设定颜色、宽度等属性
    ctx.fillStyle = "#ff0000";  // 填充颜色
    ctx.strokeStyle = "#000";   // 描边颜色
    ctx.lineWidth = borderSize; // 描边宽度

    // 填充路径或描边路径
    ctx.fill();     // 填充路径
    ctx.stroke();   // 描边路径
}
Copy after login

Use this function to draw a rounded rectangle in the specified area, such as:

drawRoundedRect(50, 50, 200, 100, 20, 3);
Copy after login

This will draw a rounded rectangle at coordinates (50, 50) with a width of 200, a height of 100, a rounded corner of 20px, and a stroke width of 3px.

3. Summary

This article introduces two methods to achieve the rounded rectangle effect: CSS and JavaScript. CSS can conveniently set the rounded corner size of elements, but it only works on static pages. If you need to dynamically create a rounded rectangle effect in JavaScript, you can use the Canvas element. Draw a path on Canvas and set properties such as color and width to achieve a rounded rectangle effect.

The above is the detailed content of JavaScript rounded rectangle settings. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template