【问题标题】:Why css animation dose not work on external elements?为什么 css 动画不适用于外部元素?
【发布时间】:2015-07-16 09:40:02
【问题描述】:

以下代码运行良好

.wrapper {
    position: relative;
    overflow: hidden;
    width: 100px;
    height: 100px; 
    border: 1px solid black;
}

#slide {
    position: absolute;
    left: -100px;
    width: 100px;
    height: 100px;
    background: blue;
    transition: 1s;
}

.wrapper:hover #slide {
    transition: 1s;
    left: 0;
}
<div class="wrapper">
    <img id="slide" src="http://lorempixel.com/output/cats-q-c-100-100-4.jpg" />
</div>

但如果我将 img 标签放在包装器之外,则代码不起作用 那么在这种情况下我该怎么办? 但是如果我将 img 标签放在包装器之外,那么代码不起作用 那么在这种情况下我该怎么办? 但是如果我将 img 标签放在包装器之外,那么代码不起作用 那么在这种情况下我该怎么办?

.wrapper {
    position: relative;
    overflow: hidden;
    width: 100px;
    height: 100px; 
    border: 1px solid black;
}

#slide {
    position: absolute;
    left: -100px;
    width: 100px;
    height: 100px;
    background: blue;
    transition: 1s;
}

.wrapper:hover #slide {
    transition: 1s;
    left: 0;
}
<html>
<div class="wrapper">
    </div>

<img id="slide" src="http://lorempixel.com/output/cats-q-c-100-100-4.jpg" />
</html>

提前致谢:)

【问题讨论】:

  • .wrapper:hover #slide 仅在 #slide 在 .wrapper 内时才有效 - 真的很简单 - 你可以试试 .wrapper:hover + #slide,或者重新考虑整个事情

标签: javascript jquery html css animation


【解决方案1】:

你可以使用兄弟选择器+:

.wrapper:hover + #slide

例子:

.wrapper {
    position: relative;
    overflow: hidden;
    width: 100px;
    height: 100px; 
    border: 1px solid black;
}

#slide {
    position: absolute;
    left: -100px;
    width: 100px;
    height: 100px;
    background: blue;
    transition: 1s;
}

.wrapper:hover + #slide {
    transition: 1s;
    left: 0;
}
<html>
<div class="wrapper">
    </div>

<img id="slide" src="http://lorempixel.com/output/cats-q-c-100-100-4.jpg" />
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 2017-07-05
    • 2015-09-01
    • 2018-01-03
    • 2021-12-04
    • 2016-01-13
    • 2013-10-09
    相关资源
    最近更新 更多