#html #css
#HTML #css
Вопрос:
.wrap {
position: relative;
width: 80vmin;
height: 80vmin;
margin: 0 auto;
background: inherit;
transform: scale(0.2) translatez(0px);
opacity: 0;
transition: transform .5s, opacity .5s;
}
a {
position: absolute;
left: 0;
top: 0;
width: 47.5%;
height: 47.5%;
overflow: hidden;
transform: scale(.5) translateZ(0px);
background: #242943;
}
a div {
height: 100%;
background-size: cover;
opacity: .5;
transition: opacity .5s;
border-radius: inherit;
}
a:nth-child(1) {
border-radius: 40vmin 0 0 0;
transform-origin: 110% 110%;
transition: transform .4s .15s;
background: #a23658;
}
a:nth-child(1) div {
background-image: url('p10.jpg');
}
a:nth-child(5) {
width: 55%;
height: 55%;
left: 22.5%;
top: 22.5%;
border-radius: 50vmin;
box-shadow: 0 0 0 5vmin #242943;
transform: scale(1);
}
a:nth-child(5) div {
background-image: url('groupphoto.jpg');
}
span {
position: relative;
display: block;
top: 45vmin;
width: 7vmin;
height: 7vmin;
background-image: url('squarelogo.png');
margin-left: auto;
margin-right: auto;
}
span span {
position: relative;
width: 60%;
height: 1px;
}
span span:after {
top: 1.5vmin;
}
span:hover .wrap,
.wrap:hover {
transform: scale(.81) translateZ(0px);
opacity: 1;
}
span:hover .wrap a,
.wrap:hover a {
transform: scale(1) translatez(0px);
}
a:hover div {
opacity: 1;
transform: translatez(0px);
}
<span><span></span></span>
<div class="wrap">
<a href="Architecture.html" title="Architecture">
<div>
<div></div>
</div>
</a>
<a href="3D amp; Animation.html" title="3D amp; Animation">
<div></div>
</a>
<a href="Graphics.html" title="Graphics">
<div></div>
</a>
<a href="Marketing.html" title="Marketing">
<div></div>
</a>
<a href="AboutUS.html" title="About Us">
<div></div>
</a>
</div>
Вот мой код. Всего у меня 5 «энных дочерних элементов». Я пытаюсь написать код, который делает так, что при наведении курсора мыши на n-й дочерний элемент появляется изображение ЗА пределами контейнера span / span. Я пробовал писать html-код для него в классах и все такое. Я не думаю, что я делаю это правильно и, похоже, сталкиваюсь с кирпичной стеной. Кто-нибудь может мне помочь?
Комментарии:
1. Я только удалил другие n-е дочерние элементы, чтобы получить больше места, чтобы задать этот вопрос в stackoverflow
Ответ №1:
1 — НЕТ JAVASCRIPT
Предполагая, что вы не хотите использовать Javascript, используя селекторы CSS, вы можете достичь того, что ищете. В моем примере я использую divs вместо изображений для наглядности.
HTML:
<span class="span1"> SPAN 1 </span>
<div class="hide1">I am an image shown when span 1 is hovered</div>
<br>
<span class="span2"> SPAN 2 </span>
<div class="hide2">I am an image shown when span 2 is hovered</div>
CSS:
.hide1, .hide2{
display: none;
}
.span1:hover .hide1 {
display: block;
color: blue;
}
.span2:hover .hide2 {
display: block;
color: blue;
}
Вот JSFiddle
2 — РЕШЕНИЕ НА JAVASCRIPT
Теперь, если вы готовы использовать JavaScript, все намного проще и гибче:
HTML:
<div>
<span onmouseover="image1()" onmouseout="imageout()" id="span1">1</span>
<span onmouseover="image2()" onmouseout="imageout()" id="span2">2</span>
<div id="image1">IMAGE 1</div>
<div id="image2">IMAGE 2</div>
</div>
CSS:
#span1, #span2{
cursor: defau<
}
#image1, #image2{
display: none;
}
JavaScript:
var img1 = document.getElementById('image1');
var img2 = document.getElementById('image2');
function image1(){
img1.style.display = "inline-block";
}
function image2(){
img2.style.display = "inline-block";
}
function imageout(){
img1.style.display = "none";
img2.style.display = "none";
}
Вот JSFiddle