Javascript 展开一个div,其中包含4个图像下的描述
我想不出热,使代码的工作,我有4个图像并排,我需要一个描述部分下的图像,这部分应该是隐藏的,当我点击一个图像正确的信息应该显示出来Javascript 展开一个div,其中包含4个图像下的描述,javascript,html,css,Javascript,Html,Css,我想不出热,使代码的工作,我有4个图像并排,我需要一个描述部分下的图像,这部分应该是隐藏的,当我点击一个图像正确的信息应该显示出来 <section class="img" style="text-align:center;"> <div class="container" onclick="select(1)" onclick="hideunhide()""> <img src="img/1.jpg">
<section class="img" style="text-align:center;">
<div class="container" onclick="select(1)" onclick="hideunhide()"">
<img src="img/1.jpg">
</div>
<div class="container" onclick="select(2)">
<img src="img/2.jpg">
</div>
<div class="container" onclick="select(3)">
<img src="img/3.jpg">
</div>
<div class="container" onclick="select(4)">
<img src="img/4.jpg">
</div>
</div>
</section>
<section id="description">
<div class="info" id="desc1">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
<div class="info" id="desc2">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
<div class="info" id="desc3">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
<div class="info" id="desc4">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
</section>
请试试这个,希望它能帮助巴迪!它在我的控制台上工作,您可以进一步增强它:
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<section class="img" style="text-align:center;">
<div class="container" onclick="hideunhide(1)">
<img src="img/1.jpg">
</div>
<div class="container" onclick="hideunhide(2)">
<img src="img/2.jpg">
</div>
<div class="container" onclick="hideunhide(3)">
<img src="img/3.jpg">
</div>
<div class="container" onclick="hideunhide(4)">
<img src="img/4.jpg">
</div>
</section>
<section id="description">
<div id="1" style="display:none;">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
<div id="2" style="display:none;">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
<div id="3" style="display:none;">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
<div id="4" style="display:none;">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
</section>
<script>
function hideunhide(id) {
var obj = document.getElementById(id);
if(obj.style.display == "block")
obj.style.display = "none";
else
obj.style.display = "block";
};
</script>
</body>
</html>
提供头衔
人
时间
国家
人
时间
国家
人
时间
国家
人
时间
国家
函数隐藏(id){
var obj=document.getElementById(id);
if(obj.style.display==“块”)
obj.style.display=“无”;
其他的
obj.style.display=“块”;
};
第二个版本,基于注释,文本在页面宽度上流动,响应性强,这意味着即使图像断线(使用媒体查询和最小脚本),文本也始终位于其图像的正下方
注意:只使用CSS版本,虽然还不太满意()
(函数(lastimg){
document.querySelector(“#img select”).addEventListener('click',函数(e){
如果(e.target.tagName.toLowerCase()=“输入”){
if(lastimg==e.target){
e、 target.checked=false;
lastimg=null;
}否则{
lastimg=e.目标;
}
}
});
}());代码>
.container{
显示器:flex;
柔性包装:包装;
}
.容器>标签{
弹性:1;
弹性基准:25%;
顺序:1;
背景色:#eee;
}
.container>div{
弹性:1;
弹性基准:100%;
顺序:5;
背景色:#eee;
}
.集装箱标签img{
显示:块;
保证金:0自动;
}
.container input、.container input~div{
显示:无;
}
.容器输入:选中~div{
显示:块;
填充:10px;
}
.货柜组{
文本对齐:居中;
}
@媒体屏幕和屏幕(最大宽度:650px){
.容器>标签{
弹性基准:50%;
}
.容器>标签:第n种类型(3),
.container>标签:第n个类型(4){
顺序:3;
}
.容器>分区:第n个类型(1),
.container>div:n类型(2){
顺序:2;
}
}
@媒体屏幕和屏幕(最大宽度:325px){
.容器>标签{
弹性基准:50%;
}
.容器>标签:第n个类型(1),
.container>div:n类型(1){
顺序:1;
}
.容器>标签:第n个类型(2),
.container>div:n类型(2){
顺序:2;
}
.容器>标签:第n种类型(3),
.container>div:n类型(3){
顺序:3;
}
.容器>标签:第n种类型(4),
.container>div:n类型(4){
顺序:4;
}
}
IMG1的一些文本在整个页面宽度上流动
img2的一些文本
img3的一些文本
img4的一些文本
您需要提供您的样式。我已经添加了样式。样式怎么样?你想隐藏我单击图像时已经显示的信息,还是我一直单击时应该显示的信息?类似这样的??默认情况下,信息应隐藏。如果单击img1,则应取消隐藏img1信息。如果再次单击img1,则应隐藏信息。如果在显示img1信息时单击img2,则应切换信息。当我点击img1时,应显示说明;如果在显示img1说明时点击img2,则应切换说明,当第二次点击img时,应该隐藏文本。@TomasBond文本现在在第二次点击时被隐藏,但我将修复文本全部被隐藏width@TomasBond更新了我的答案。你使用什么浏览器?我使用Firefox,但应该与大多数浏览器兼容。我看到所有的文字都在同一个位置(我想这只是因为它们没有像我在页面上输入的那样集中在页面上)第二次单击“隐藏”对我不起作用,文字只是停留在那里你似乎对此了解很多,当在小屏幕(如手机)中看到时,它应该会在当前行下显示的图像下弹出,如果图像以2x2结构拆分,则来自img 1和2的信息应在这些图像下弹出,来自img3和4的信息应在页面底部弹出。很难理解,希望你不难理解
div.container {
display: inline-block;
margin: 25px;
border: solid 5px #333333;
border-radius: 5px;
}
div.container:hover {
border: solid 5px #fff;
}
.info {
border: solid 5px #333333;
text-align: center
}
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<section class="img" style="text-align:center;">
<div class="container" onclick="hideunhide(1)">
<img src="img/1.jpg">
</div>
<div class="container" onclick="hideunhide(2)">
<img src="img/2.jpg">
</div>
<div class="container" onclick="hideunhide(3)">
<img src="img/3.jpg">
</div>
<div class="container" onclick="hideunhide(4)">
<img src="img/4.jpg">
</div>
</section>
<section id="description">
<div id="1" style="display:none;">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
<div id="2" style="display:none;">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
<div id="3" style="display:none;">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
<div id="4" style="display:none;">
<h1>people</h1>
<p>time</p>
<p>country</p>
</div>
</section>
<script>
function hideunhide(id) {
var obj = document.getElementById(id);
if(obj.style.display == "block")
obj.style.display = "none";
else
obj.style.display = "block";
};
</script>
</body>
</html>