css - CSS中有没有办法通过触发动作将句子变成首字母缩写词?
问题描述
我整天都在搜索,要么找不到合适的词,要么我在谷歌搜索方面没有我想象的那么好。
我的想法是将 4 字徽标转换为其 4 字母徽标首字母缩略词版本,这将在粘性菜单上激活,即从长版本开始并滑回首字母缩略词版本或反之亦然。
感谢你的帮助
解决方案
您没有为您尝试做的事情提供任何代码示例,但我认为我理解您想要完成的工作并将其视为一个小型开发挑战。
读给我听,就像您想从多字 (4) 文本徽标过渡到多字母 (4) 首字母徽标。我做了一个小演示,通过更改 JS 类和 CSS 来做到这一点@keyframes
。您可以换掉切换类名的 JS,无论您打算如何触发粘性菜单。
运行下面的代码片段,或使用 SCSS 在 CodePen 中查看
const button = document.querySelector('.toggle-button');
const logo = document.querySelector('.logo');
button.addEventListener('click', function() {
logo.classList.toggle('logo--small');
});
@keyframes fadeOut {
from { opacity: 1; }
to { opacity: 0; }
}
@keyframes letterSpacingNegative1em {
from { letter-spacing: normal; }
to { letter-spacing: -1em; }
}
@keyframes letterSpacingNegative02em {
from { letter-spacing: normal; }
to { letter-spacing: -0.2em; }
}
body {
padding: 0 1rem;
font-family: sans-serif;
}
.logo {
width: fit-content;
padding: 10px 14px 8px;
background-color: #eee;
line-height: 1;
}
.logo--small .logo__word {
animation-name: letterSpacingNegative02em;
animation-fill-mode: forwards;
animation-timing-function: ease-out;
animation-duration: 0.2s;
animation-delay: 0.6s;
}
/**
* The sibling selector has a lower specificity but is functionally the same
* as using :not(:first-child).
*/
.logo--small .logo__word span ~ span {
animation-name: fadeOut, letterSpacingNegative1em;
animation-fill-mode: forwards, forwards;
animation-timing-function: ease-out, ease-out;
animation-duration: 0.4s, 0.6s;
animation-delay: 0s, 0.4s;
}
<p>
<button class="toggle-button">Toggle Logo Class</button>
</p>
<h1 class="logo">
<span class="logo__word"><span>Y</span><span>our</span></span>
<span class="logo__word"><span>M</span><span>ulti</span></span>
<span class="logo__word"><span>W</span><span>ord</span></span>
<span class="logo__word"><span>L</span><span>ogo</span></span>
</h1>
推荐阅读
- java - maven无法运行测试
- python - Pyramid 不包含在 Python virtualenv 中
- c# - 如何构造输出文件?
- c++ - 你如何使用 Dbo::QueryModel?
- javascript - Javascript:正则表达式搜索并提取“{}”内的字符串
- sql - GBQ SQL:如何找到 X 值的第一个实例并拉出相应的行
- go - 定义函数接收器还是在参数中传递结构指针?
- javascript - 如果我按下一个键但没有使用 JavaScript 释放,如何计算输入框中添加的元素数量
- neo4j - 用于 OSM PointOfInterest 的 Neo4j 中的路由
- python - 当我按下以下代码中的按钮时出现错误:窗口路径名称错误“.!frame”?