Fix: Render background-size correctly with no-repeat #447

This commit is contained in:
Niklas von Hertzen 2014-09-27 17:02:46 +03:00
parent 1d8a316f13
commit 3f3424e49c
4 changed files with 17 additions and 5 deletions

2
dist/html2canvas.js vendored
View File

@ -2347,7 +2347,7 @@ Renderer.prototype.renderBackgroundRepeating = function(container, bounds, image
this.backgroundRepeatShape(imageContainer, position, size, bounds, bounds.left + position.left + borderData[3], bounds.top + borderData[0], imageContainer.image.width, 99999, borderData); this.backgroundRepeatShape(imageContainer, position, size, bounds, bounds.left + position.left + borderData[3], bounds.top + borderData[0], imageContainer.image.width, 99999, borderData);
break; break;
case "no-repeat": case "no-repeat":
this.backgroundRepeatShape(imageContainer, position, size, bounds, bounds.left + position.left + borderData[3], bounds.top + position.top + borderData[0], imageContainer.image.width, imageContainer.image.height, borderData); this.backgroundRepeatShape(imageContainer, position, size, bounds, bounds.left + position.left + borderData[3], bounds.top + position.top + borderData[0], size.width, size.height, borderData);
break; break;
default: default:
this.renderBackgroundRepeat(imageContainer, position, size, {top: bounds.top, left: bounds.left}, borderData[3], borderData[0]); this.renderBackgroundRepeat(imageContainer, position, size, {top: bounds.top, left: bounds.left}, borderData[3], borderData[0]);

File diff suppressed because one or more lines are too long

View File

@ -95,7 +95,7 @@ Renderer.prototype.renderBackgroundRepeating = function(container, bounds, image
this.backgroundRepeatShape(imageContainer, position, size, bounds, bounds.left + position.left + borderData[3], bounds.top + borderData[0], imageContainer.image.width, 99999, borderData); this.backgroundRepeatShape(imageContainer, position, size, bounds, bounds.left + position.left + borderData[3], bounds.top + borderData[0], imageContainer.image.width, 99999, borderData);
break; break;
case "no-repeat": case "no-repeat":
this.backgroundRepeatShape(imageContainer, position, size, bounds, bounds.left + position.left + borderData[3], bounds.top + position.top + borderData[0], imageContainer.image.width, imageContainer.image.height, borderData); this.backgroundRepeatShape(imageContainer, position, size, bounds, bounds.left + position.left + borderData[3], bounds.top + position.top + borderData[0], size.width, size.height, borderData);
break; break;
default: default:
this.renderBackgroundRepeat(imageContainer, position, size, {top: bounds.top, left: bounds.left}, borderData[3], borderData[0]); this.renderBackgroundRepeat(imageContainer, position, size, {top: bounds.top, left: bounds.left}, borderData[3], borderData[0]);

View File

@ -19,15 +19,27 @@
} }
.horizontal div { .horizontal div {
width: 400px; height: 200px; width: 400px; height: 100px;
} }
.vertical div { .vertical div {
width: 200px; height: 400px; width: 200px; height: 200px;
}
.container {
float: left;
border: 1px solid black;
width: 200px;
height: 200px;
background-image: url(../../assets/image.jpg);
background-size: 34px;
background-repeat: no-repeat;
background-position: center;
} }
</style> </style>
</head> </head>
<body> <body>
<div class="container"></div>
<div class="horizontal"> <div class="horizontal">
<div style='background-size: cover;'></div> <div style='background-size: cover;'></div>