Přemýšlel jsem, zda apríly nevyhodit do *.js, ale nakonec jen takhto do separátního template
This commit is contained in:
parent
52dc337a20
commit
c5b81871d2
2 changed files with 62 additions and 58 deletions
61
mamweb/templates/april.html
Normal file
61
mamweb/templates/april.html
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
{% if april == 2021 %}
|
||||||
|
<script type="text/javascript" charset="utf-8">
|
||||||
|
function rotace(vektor, uhel_deg) {
|
||||||
|
var uhel = uhel_deg *(Math.PI / 180);
|
||||||
|
var x = vektor[0];
|
||||||
|
var y = vektor[1];
|
||||||
|
return [x*Math.cos(uhel) - y*Math.sin(uhel), x*Math.sin(uhel) + y*Math.cos(uhel)];
|
||||||
|
}
|
||||||
|
|
||||||
|
function rotace_a_posun(obj, uhel) {
|
||||||
|
var ow = obj.width();
|
||||||
|
var oh = obj.height();
|
||||||
|
|
||||||
|
var rohy = [[0,0], [0,oh], [ow, 0], [ow, oh]];
|
||||||
|
var minx = 0;
|
||||||
|
var miny = 0;
|
||||||
|
for (var roh of rohy) {
|
||||||
|
var otoceny = rotace(roh, uhel);
|
||||||
|
if (otoceny[0] < minx) {
|
||||||
|
minx = otoceny[0];
|
||||||
|
}
|
||||||
|
if (otoceny[1] < miny) {
|
||||||
|
miny = otoceny[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
miny *= -1;
|
||||||
|
minx *= -1;
|
||||||
|
|
||||||
|
var transf_str = "translateX("+minx+"px) translateY("+miny+"px) rotate("+uhel+"deg)";
|
||||||
|
obj.css('transform-origin', 'top left');
|
||||||
|
obj.css('transform', transf_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
function randomUhel() {
|
||||||
|
return Math.floor(360*Math.random());
|
||||||
|
}
|
||||||
|
|
||||||
|
$('.container').css('margin', 0);
|
||||||
|
rotace_a_posun($('.container'), randomUhel());
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% if april == 2023 %}
|
||||||
|
<script>
|
||||||
|
{# By https://stackoverflow.com/a/34559316 #}
|
||||||
|
function walkText(node) {
|
||||||
|
if (node.nodeType == 3) {
|
||||||
|
node.data = node.data.replace(/M&M/g, "M💘M");
|
||||||
|
}
|
||||||
|
if (node.nodeType == 1 && node.nodeName != "SCRIPT") {
|
||||||
|
for (var i = 0; i < node.childNodes.length; i++) {
|
||||||
|
walkText(node.childNodes[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
walkText(document.body);
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
|
@ -121,64 +121,7 @@
|
||||||
|
|
||||||
|
|
||||||
<script src="{% static 'bootstrap/js/bootstrap.js' %}"></script>
|
<script src="{% static 'bootstrap/js/bootstrap.js' %}"></script>
|
||||||
{% if april == 2021 %}
|
{% include 'april.html' %}
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
function rotace(vektor, uhel_deg) {
|
|
||||||
var uhel = uhel_deg *(Math.PI / 180);
|
|
||||||
var x = vektor[0];
|
|
||||||
var y = vektor[1];
|
|
||||||
return [x*Math.cos(uhel) - y*Math.sin(uhel), x*Math.sin(uhel) + y*Math.cos(uhel)];
|
|
||||||
}
|
|
||||||
|
|
||||||
function rotace_a_posun(obj, uhel) {
|
|
||||||
var ow = obj.width();
|
|
||||||
var oh = obj.height();
|
|
||||||
|
|
||||||
var rohy = [[0,0], [0,oh], [ow, 0], [ow, oh]];
|
|
||||||
var minx = 0;
|
|
||||||
var miny = 0;
|
|
||||||
for (var roh of rohy) {
|
|
||||||
var otoceny = rotace(roh, uhel);
|
|
||||||
if (otoceny[0] < minx) {
|
|
||||||
minx = otoceny[0];
|
|
||||||
}
|
|
||||||
if (otoceny[1] < miny) {
|
|
||||||
miny = otoceny[1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
miny *= -1;
|
|
||||||
minx *= -1;
|
|
||||||
|
|
||||||
var transf_str = "translateX("+minx+"px) translateY("+miny+"px) rotate("+uhel+"deg)";
|
|
||||||
obj.css('transform-origin', 'top left');
|
|
||||||
obj.css('transform', transf_str);
|
|
||||||
}
|
|
||||||
|
|
||||||
function randomUhel() {
|
|
||||||
return Math.floor(360*Math.random());
|
|
||||||
}
|
|
||||||
|
|
||||||
$('.container').css('margin', 0);
|
|
||||||
rotace_a_posun($('.container'), randomUhel());
|
|
||||||
</script>
|
|
||||||
{% endif %}
|
|
||||||
{% if april == 2023 %}
|
|
||||||
<script>
|
|
||||||
{# By https://stackoverflow.com/a/34559316 #}
|
|
||||||
function walkText(node) {
|
|
||||||
if (node.nodeType == 3) {
|
|
||||||
node.data = node.data.replace(/M&M/g, "M💘M");
|
|
||||||
}
|
|
||||||
if (node.nodeType == 1 && node.nodeName != "SCRIPT") {
|
|
||||||
for (var i = 0; i < node.childNodes.length; i++) {
|
|
||||||
walkText(node.childNodes[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
walkText(document.body);
|
|
||||||
</script>
|
|
||||||
{% endif %}
|
|
||||||
{% block js %}{% endblock %}
|
{% block js %}{% endblock %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in a new issue