javascript - 如何在 JavaScript 中使用精灵表
问题描述
初学者在这里,我没有找到关于这个的教程。我有一个带有游戏模型的页面来测试不同的图形。目前,我使用的是 getElementByID 短语并使用特定文件。我要测试的文件越多,就越乏味和耗时。
我想使用一个精灵表(图标 16x16),其中图标将显示在右侧面板上,并且在选择一个时,它将被推到左侧的模型上。我怎么做?
现在我正在使用这个:
```
<img class="testBubble" id="testBubble" src="imgNPC/b-bg/bbg-A3.gif" alt="image">
```
<div class="col-sm">
<img class="bgBublle" src="imgNPC/b-bg/bbg-A1.gif" onclick="bgbA1()">
<img class="bgBublle" src="imgNPC/b-bg/bbg-A2.gif" onclick="bgbA2()">
<img class="bgBublle" src="imgNPC/b-bg/bbg-A3.gif" onclick="bgbA3()">
<img class="bgBublle" src="imgNPC/b-bg/bbg-A4.gif" onclick="bgbA4()">
<img class="bgBublle" src="imgNPC/b-bg/bbg-A5.gif" onclick="bgbA5()">
</div>
//A
function bgbA1() {
document.getElementById("testBubble").src="imgNPC/b-bg/bbg-A1.gif";
}
function bgbA2() {
document.getElementById("testBubble").src="imgNPC/b-bg/bbg-A2.gif";
}
function bgbA3() {
document.getElementById("testBubble").src="imgNPC/b-bg/bbg-A3.gif";
}
function bgbA4() {
document.getElementById("testBubble").src="imgNPC/b-bg/bbg-A4.gif";
}
function bgbA5() {
document.getElementById("testBubble").src="imgNPC/b-bg/bbg-A5.gif";
}
```
解决方案
我建议将 sprite 复制函数(bgbA1
、bgbA2
等)组合成一个函数,它可以处理所有情况:
<div class="col-sm">
<img class="bgBublle" src="imgNPC/b-bg/bbg-A1.gif" onclick="bgb('A1')">
<img class="bgBublle" src="imgNPC/b-bg/bbg-A2.gif" onclick="bgb('A2')">
...
</div>
//A
function bgb(subSprite) {
document.getElementById("testBubble").src="imgNPC/b-bg/bbg-"+subSprite+".gif";
}
在.col-sm
使用document.createElement()
和使用中自动创建图像也是一个好主意/*col-sm element*/.appendChild(/*created element*/)
推荐阅读
- mysql - Kubernetes:无法连接到“xxxx”(110)上的 MySQL 服务器 - 网络策略
- r - R - parse_date_time() 的一周间隔,自 2018 年以来返回错误的星期一
- scala - 在 Scala 中返回隐式函数
- php - 如果在字符串中找到图像标签,如何停止函数
- c - 当我添加了 4 个元素时,为什么数组的长度是 3?
- amazon-web-services - 为每个部署环境传递 CDK 上下文值
- macos - DriverKit 中可以将哪些选项传递给 IOService::Terminate
- github - 当有人对我的提交发表评论时,如何停止从 GitHub 收到电子邮件?
- xml - 下载字符串的编码问题(UTF-8、ISO-8859-1、FSharp.Data)
- html - 滚动时,将元素从屏幕底部转换到屏幕中心并保持居中,直到该部分的底部接触视口的底部