В своей простейшей форме я хочу сделать страницу загрузки, такую как на этом сайте.
Я хочу использовать собственный логотип SVG (который я сделал в иллюстраторе) и горизонтально заполнять логотип при загрузке страницы.
Как progress bar
клипирования маски SVG (или что-то похожее).
Самый простой способ сделать это - заполнить лого с помощью градиента.
<linearGradient id="progress">
<stop id="stop1" offset="0" stop-color="black"/>
<stop id="stop2" offset="0" stop-color="grey"/>
</linearGradient>
Вам просто нужно изменить значение offset
на обоих элементах <stop>
на процент, который вы хотите - либо 0-> 1
, либо 0%
-> 100%
. Например:
Функция может быть примерно такой:
function setProgress(amt)
{
amt = (amt < 0) ? 0 : (amt > 1) ? 1 : amt;
document.getElementById("stop1").setAttribute("offset", amt);
document.getElementById("stop2").setAttribute("offset", amt);
}
Этот подход работает для любого элемента SVG, будь то текст, как в приведенной ниже демонстрационной версии, или сложный логотип из путей.
function setProgress(amt)
{
amt = (amt < 0) ? 0 : (amt > 1) ? 1 : amt;
document.getElementById("stop1").setAttribute("offset", amt);
document.getElementById("stop2").setAttribute("offset", amt);
}
// Simple test of setProgress().
// We step up from 0 to 1 using timeouts
val = 0;
doTimeout();
function doTimeout() {
setProgress(val);
val += 0.01;
if (val <= 1) {
setTimeout(doTimeout, 30);
}
}
text {
font: 'Times Roman', serif;
font-size: 125px;
fill: url(#progress);
}
<svg width="650" height="150">
<defs>
<linearGradient id="progress">
<stop id="stop1" offset="0" stop-color="black"/>
<stop id="stop2" offset="0" stop-color="grey"/>
</linearGradient>
</defs>
<text x="20" y="120">TILL JANZ</text>
</svg>
Ещё пример - сезонная смена цвета деревьев
function setProgress(amt)
{
amt = (amt < 0) ? 0 : (amt > 1) ? 1 : amt;
document.getElementById("stop1").setAttribute("offset", amt);
document.getElementById("stop2").setAttribute("offset", amt);
}
// Simple test of setProgress().
// We step up from 0 to 1 using timeouts
val = 0;
doTimeout();
function doTimeout() {
setProgress(val);
val += 0.01;
if (val <= 1) {
setTimeout(doTimeout, 30);
}
}
#tree1 {
fill: url(#progress);
}
<svg width="267" height="347" viewBox="0 0 267 347">
<defs>
<linearGradient id="progress">
<stop id="stop1" offset="0" stop-color="#D3B300"/>
<stop id="stop2" offset="0" stop-color="green"/>
</linearGradient>
</defs>
<g id="tree1">
<path id="Trunk" d="m119 262 28 0 0 86-28-2z" style="fill:#502d16;stroke:#000"/>
<path id="Leaves" d="M261 327 169 244c16 9 103 34 76 15-25-18-81-74-81-74 8 5 94 45 71 27-24-19-78-88-78-88 7 5 42 11 42 11-24-13-47-73-47-73 11 8 21 7 21 7C149 51 133 0 133 0c0 0-15 51-39 69 0 0 9 1 21-7 0 0-23 60-47 73 0 0 35-7 42-12 0 0-38 58-78 89-20 15 61-23 69-28 0 0-25 38-75 85-14 14 63-13 72-25 0 0-70 64-88 86-6 7 123-56 123-56 0 0 133 70 129 52z" />
</g>
</svg>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите как сверстать вот такой треугольник (смотрите на фото), что-бы в нем был текст и что-бы все заголовки были выровнены правильноПыталась...
В session хранится List<Task>Я хочу выводить объект task, после чего проверять значение некого атрибута, и если оно равно заданному значению, то добавлять...
Здравствуйте есть коды в jsp который позволяет добавить ответ на вопросу и увидеть все ответыВ БД ответ хранит id вопроса