mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
fix: correctly calculate the background repeat path
This commit is contained in:
parent
6020386bbe
commit
09b6f0f82f
@ -226,34 +226,34 @@ export const calculateBackgroundRepeatPath = (
|
||||
switch (repeat) {
|
||||
case BACKGROUND_REPEAT.REPEAT_X:
|
||||
return [
|
||||
new Vector(Math.round(backgroundPositioningArea.left), Math.round(backgroundPositioningArea.top + y)),
|
||||
new Vector(Math.round(backgroundPaintingArea.left), Math.round(backgroundPositioningArea.top + y)),
|
||||
new Vector(
|
||||
Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width),
|
||||
Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width),
|
||||
Math.round(backgroundPositioningArea.top + y)
|
||||
),
|
||||
new Vector(
|
||||
Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width),
|
||||
Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width),
|
||||
Math.round(height + backgroundPositioningArea.top + y)
|
||||
),
|
||||
new Vector(
|
||||
Math.round(backgroundPositioningArea.left),
|
||||
Math.round(backgroundPaintingArea.left),
|
||||
Math.round(height + backgroundPositioningArea.top + y)
|
||||
)
|
||||
];
|
||||
case BACKGROUND_REPEAT.REPEAT_Y:
|
||||
return [
|
||||
new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top)),
|
||||
new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPaintingArea.top)),
|
||||
new Vector(
|
||||
Math.round(backgroundPositioningArea.left + x + width),
|
||||
Math.round(backgroundPositioningArea.top)
|
||||
Math.round(backgroundPaintingArea.top)
|
||||
),
|
||||
new Vector(
|
||||
Math.round(backgroundPositioningArea.left + x + width),
|
||||
Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)
|
||||
Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top)
|
||||
),
|
||||
new Vector(
|
||||
Math.round(backgroundPositioningArea.left + x),
|
||||
Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)
|
||||
Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top)
|
||||
)
|
||||
];
|
||||
case BACKGROUND_REPEAT.NO_REPEAT:
|
||||
|
59
tests/reftests/background/clip-2.html
Normal file
59
tests/reftests/background/clip-2.html
Normal file
@ -0,0 +1,59 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Background attribute tests</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<script type="text/javascript" src="../../test.js"></script>
|
||||
<style>
|
||||
html {
|
||||
background-color: red;
|
||||
}
|
||||
body {
|
||||
background-color: lime;
|
||||
}
|
||||
|
||||
.medium div{
|
||||
width:100px;
|
||||
height:100px;
|
||||
float:left;
|
||||
margin:10px;
|
||||
border:20px solid transparent;
|
||||
border-width: 10px 20px 30px 40px;
|
||||
background: green;
|
||||
padding: 25px 15px;
|
||||
}
|
||||
|
||||
.medium{
|
||||
clear:both;
|
||||
}
|
||||
|
||||
div{
|
||||
display:block;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="medium">
|
||||
<div style="background:url(../../assets/image.jpg);background-clip: border-box; background-origin: padding-box; background-repeat: repeat-x;"></div>
|
||||
<div style="background:url(../../assets/image.jpg);background-clip: padding-box; background-origin: padding-box; background-repeat: repeat-x;"></div>
|
||||
<div style="background:url(../../assets/image.jpg);background-clip: content-box; background-origin: padding-box; background-repeat: repeat-x;"></div>
|
||||
<div style="background:url(../../assets/image.jpg);background-clip: border-box; background-origin: padding-box; background-repeat: repeat;"></div>
|
||||
</div>
|
||||
|
||||
<div class="medium">
|
||||
<div style="background:url(../../assets/image.jpg);background-clip: border-box; background-origin: padding-box; background-repeat: repeat-y;"></div>
|
||||
<div style="background:url(../../assets/image.jpg);background-clip: padding-box; background-origin: padding-box; background-repeat: repeat-y;"></div>
|
||||
<div style="background:url(../../assets/image.jpg);background-clip: content-box; background-origin: padding-box; background-repeat: repeat-y;"></div>
|
||||
</div>
|
||||
|
||||
<div class="medium">
|
||||
<div style="background-clip: border-box;"></div>
|
||||
<div style="background-clip: padding-box;"></div>
|
||||
<div style="background-clip: content-box;"></div>
|
||||
<div style=""></div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user