Редактировать: Похоже, вы должны установить display: block;
для элемента canvas в jsfiddle, чтобы устранить дополнительный интервал, который вызывает полосы прокрутки. Вот исправленная версия: http://jsfiddle.net/LAuUh/3/
Возможно, вы захотите подключиться к событию изменения размера окна, чтобы вы могли заново нарисовать гильотину и изменить размер холста. В противном случае, если пользователь изменит размер своего браузера, фон больше не будет соответствовать.
Я не совсем уверен, откуда берутся лишние пиксели в примере jsfiddle, но при тестировании на отдельной странице этот код, кажется, достигает того, что вы ищете:
var vpW = $(window).width();
var vpH = $(window).height();
var halfHeight = vpH/2;
var canvas = document.createElement("canvas");
canvas.width = vpW; canvas.height = vpH;
var blade1 = canvas.getContext('2d');
blade1.fillStyle = "#000";
blade1.beginPath();
blade1.moveTo(0,0); // top left
blade1.lineTo(vpW, 0); // top right
blade1.lineTo(vpW,halfHeight / 2.0); // right, quarterway down
blade1.lineTo(0,halfHeight + halfHeight / 2.0); // left, threequarters down
blade1.closePath();
blade1.fill();
$(canvas).css('backgroundColor','#fc0');
$(canvas).prependTo('body');
С этим CSS:
html, body {
width: 100%;
height: 100%;
margin: 0px;
padding: 0px;
}
Основной проблемой, которую я исправил, были координаты, которые вы использовали для своей формы гильотины. Кроме того, используя этот синтаксис:
var canvas = $('<canvas />', {width:page.width, height:page.height});
когда вы создаете свой элемент canvas, это плохо, так как он применяет ширину и высоту в качестве атрибутов стиля. При использовании элементов canvas ширина и высота CSS управляют увеличением, а атрибуты width и height объекта DOM контролируют фактические размеры холста.