css - CSS 背景图片精灵调整大小
问题描述
我有以下 CSS 代码用于在音频元素上显示控制按钮:
background: url("../img/controlSprite.svg") 0 0;
height: 53px;
width: 53px;
float: left;
margin-right: 10%;
由于按钮是可点击的并且点击时会发生变化,我使用了精灵图案,所以当应该显示新图像时,我只需将背景定位到下一张图像。图像如下所示:
问题是当我尝试通过更改宽度或高度来使这些按钮适应较小的屏幕时,调整大小会发生在整个图像上,而不仅仅是我希望调整大小的一个元素。
使用此背景定位时,是否有任何方法可以“锁定”显示的元素,以便当我想让元素更大或更小时,它只适用于元素而不是整个精灵图像?
解决方案
当它悬停或单击按钮时,我更改了转换的 translateY 属性。
这可能会解决您的问题。
var button = document.getElementsByClassName('button')[0];
var sprite = document.getElementsByClassName('sprite_image')[0];
var count = 0;
button.onclick = function() {
if (count % 2 == 0) {
sprite.style.transform = "translateY(-136px)";
} else {
sprite.style.transform = "translateY(-1px)";
}
count++;
};
* {
margin: 0px;
padding: 0px;
}
.sprite {
width: 55px;
height: 63px;
overflow: hidden;
}
.sprite img {}
@keyframes move {
0% {
transform: translateY(-0px);
}
50% {
transform: translateY(-63px);
}
100% {
transform: translateY(-126px);
}
}
.sprite button {
border: none;
outline: none;
background-color: white;
cursor: pointer;
}
.sprite button:hover .sprite_image {
transform: translateY(-68px);
}
<div class="sprite">
<button class="button"><img src="https://i.stack.imgur.com/5GrWU.png" class="sprite_image"></button>
</div>
推荐阅读
- html - 转发特定时间的网页
- amazon-web-services - AWS 自定义域名映射 - 缓存?
- azure - 为 Azure Functions 安装 powershell 模块不起作用
- sql-server - Linux上的pyodbc fast_executemany在插入时出现乱码
- django - 我正在尝试在我的 django 应用程序中重定向我,但它给了我 NoReverseMatch 错误
- javascript - React - 通过文本框设置集合状态时遇到问题
- c# - 如何在 EF Core Find 方法中使用不同的 c# 原始数据类型
- java - 如何仅从反应流中发出累积和?
- flutter - 如何在 Dart 中定义带参数的默认函数?
- c# - 如何使 DataGridCell 中的内容可滚动?