You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.3 KiB
HTML

1 month ago
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="../src/js/rulez.js"></script>
<link type="text/css" rel="stylesheet" href="demo.css">
<link type="text/css" rel="stylesheet" href="../src/css/rulez-black.css">
</head>
<body style="margin: 0;">
<div class="black-rect"></div>
<div class="content">
<button id="updateSize">update size</button>
zoom <input id="zoom" min="0" max="10" step="0.01" value="1" /><label id="zoomLabel">1</label>
<div id="scroll" style="">
<div style="width: 9000px; height: 9000px;">
<img id="img" src="demo.png" />
</div>
</div>
</div>
<div class="ruler-horizontal">
<svg id="svgH" xmlns="http://www.w3.org/2000/svg"></svg>
</div>
<div class="ruler-vertical">
<svg id="svgV" xmlns="http://www.w3.org/2000/svg"></svg>
</div>
<script>
var rulezH = new Rulez({
element: document.getElementById('svgH'),
layout: 'horizontal',
alignment: 'bottom',
textDefaults: {
rotation: -90,
centerText: true
},
guides: [
{
position: 200
},
{
position: 400
}
]
});
rulezH.render();
var rulezV = new Rulez({
element: document.getElementById('svgV'),
layout: 'vertical',
alignment: 'right',
textDefaults: {
rotation: -90,
centerText: {
by: 'height',
operation: 'sum' //'sum' or 'sub'
}
},
texts: [
{
pixelGap: 100,
offset: 20
}
],
guides: [
{
position: 200
},
{
position: 400
}
]
});
rulezV.render();
var scroll = document.getElementById('scroll');
scroll.addEventListener('scroll', function () {
rulezH.scrollTo(scroll.scrollLeft);
rulezV.scrollTo(scroll.scrollTop);
});
document.getElementById('updateSize').addEventListener('click', function () {
rulezH.saveAsImage(function (imgs) {
img.src = imgs;
});
rulezH.resize();
rulezV.resize();
});
var img = document.getElementById('img');
var imgWidth = 0;
var imgHeight = 0;
var zoomLabel = document.getElementById('zoomLabel');
document.getElementById('zoom').addEventListener('change', function (event) {
if (!imgWidth) {
imgWidth = img.width;
imgHeight = img.height;
}
var scale = event.target.value;
img.style.width = imgWidth * scale + 'px';
img.style.height = imgHeight * scale + 'px';
rulezH.setScale(1 / scale);
rulezV.setScale(1 / scale);
zoomLabel.innerHTML = scale;
});
</script>
</body>
</html>