【发布时间】:2020-12-16 11:38:22
【问题描述】:
您好,这是我第一次尝试创建网站,所有这些不同的语言似乎有点让人不知所措。我有一些编程 gui 的经验,我不得不说 css 的几何管理器对我来说似乎非常奇怪。
无论如何我的目标页面是:
- 要以有序的方式显示图像,图像是 svg。
- 能够重新组织图像网格以使其更大或更小。
- 将图像放入数组中,这样编辑页面会更容易。
- 能够在每张图片的某个区域放置链接。
到目前为止,我已经完成了除了最后一个之外的所有点,我不知道如何在每张图片的某个区域放置一个可点击的链接。
我已经看到我可以在地图上使用区域标签,但据我所知,坐标必须是绝对值并且不能相对于图像,这意味着当图像改变大小时,区域将是错误的。
我也尝试将链接直接放在我想要的 svg 文件的元素中,但由于某种原因在 html 文件中不起作用。
有什么建议吗?
这是我目前所拥有的:
// Create images
var images_names = ["Images/article_0.svg", "Images/article_1.svg", "Images/article_2.svg", "Images/article_3.svg", "Images/article_4.svg",
"Images/article_5.svg", "Images/article_6.svg", "Images/article_7.svg", "Images/article_8.svg"
]
var i;
for (i = 0; i < images_names.length; i++) {
var img = document.createElement('img');
img.src = images_names[i];
document.getElementById('container').appendChild(img);
}
// Create Maps
// Geometry functions
function two() {
var i;
var elements = document.getElementsByTagName("img");
for (i = 0; i < elements.length; i++) {
elements[i].style.width = "49%"; // IE10
}
}
function four() {
var i;
var elements = document.getElementsByTagName("img");
for (i = 0; i < elements.length; i++) {
elements[i].style.width = "24%"; // IE10
}
}
function eight() {
var i;
var elements = document.getElementsByTagName("img");
for (i = 0; i < elements.length; i++) {
elements[i].style.width = "12%"; // IE10
}
}
function sixteen() {
var i;
var elements = document.getElementsByTagName("img");
for (i = 0; i < elements.length; i++) {
elements[i].style.width = "6%"; // IE10
}
}
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: Arial, Helvetica, sans-serif;
}
img {
width: 24%;
top: 0;
}
.header {
text-align: center;
padding: 32px;
position: sticky;
top: 0;
background-color: white;
}
#container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: flex-start;
align-content: space-between;
}
<!-- Header -->
<div class="header">
<h1>TITLE</h1>
<p>Click on the buttons to change the grid view.</p>
<button onclick="two()">2</button>
<button onclick="four()">4</button>
<button onclick="eight()">8</button>
<button onclick="sixteen()">16</button>
</div>
<div id="container">
</div>
【问题讨论】:
-
感谢您先搜索!
-
我认为这对我没有帮助,因为他们提出的解决方案是使用区域标签制作地图,我遇到的问题是图像大小改变时
-
所以你有一些随机大小的随机图像,你问如何使这个随机大小的东西的“已知”区域成为链接?如果您不知道图像的大小,您建议如何定位这个“可点击区域”?计算机程序不太擅长猜测。
-
我的意思是我不知道如何在这种语言中做到这一点,但如果这就是你的建议,我要问的问题在数学上是明确定义的。如果区域的坐标可以定义为(10%, 50%, 100%, 75%),那么程序可以随时知道该区域,只需要重新计算该区域的绝对坐标图像的当前坐标。我尝试过的另一件事(我在问题中说)是将链接放在与该区域相对应的图像的 svg 元素中,但由于某种原因这不起作用。
标签: javascript html css