2

我有以下 HTML/CSS 标记,它应该在状态下转换div元素。:hover

将鼠标悬停在div元素上时,:hover样式会正确添加。但是在鼠标移动时,这些样式会丢失,直到鼠标停止移动。

为什么会这样?


HTML:

<div class="module">
sdfsdf
<br><br>
<img src="http://placekitten.com/100/100" />
</div>​

CSS:

.module
{
    width:200px;
    height:200px;
    background:blue;
    margin:10px;
    color:#fff;
    padding:10px;
}

.module:hover
{
    -webkit-transform-origin:50% 50%;
    -webkit-transition:-webkit-transform 0.08s;
    -webkit-font-smoothing:antialiased;
    -webkit-transform:perspective(800px) rotateX(0deg) rotateY(0deg) translateZ(-20px);

}​

-- 见 jsFiddle 演示 --

注意:我的演示和 CSS 目前仅适用于 webkit。

我在 Google Chrome 版本 23.0.1271.95 m 上复制了这个问题

4

3 回答 3

0

似乎问题与负 z 值有关,因为将其更改为translateZ(20px);可以正常工作。一个修复,如果你不想使用额外的div,可以添加-webkit-transform-style: preserve-3d;body.

这是一个更新的jsfiddle

希望有帮助!

于 2012-12-12T08:07:44.087 回答
0

我有同样的使用 Chrome。这修复了它:

<div class="container">
<div class="module">
    <img src="http://placekitten.com/100/100"> 
</div>
</div>

和CSS

.module
{
width:200px;
height:200px;
background:blue;
color:#fff;
padding:10px;
}

.container:hover .module
{
-webkit-transform-origin:50% 50%;
-webkit-transition:-webkit-transform 0.08s;
-webkit-font-smoothing:antialiased;
-webkit-transform:perspective(800px) rotateX(0deg) rotateY(0deg) translateZ(-20px);

}​​​​​​​​​​​​​​​​​​​
于 2012-12-07T15:06:40.173 回答
0

尝试这个

我把它放到一个容器 div 中。将悬停应用到容器并将 .module 上的指针事件设置为无。删除了不必要的东西。如果需要,您仍然可以将 -webkit- 添加到其中的一些内容中。我似乎没有必要。

请注意,我将过渡移到了悬停代码之外

* {
    box-sizing: border-box;
}

.container {
    width: 200px;
    height: 200px;
    margin: 10px;
    border: 1px solid black;
    perspective: 800px;
}

.module {
    width: 200px;
    height: 200px;
    background: blue;
    color: #fff;
    padding: 10px;
    pointer-events: none; 
    transition: transform 0.08s;
}

.container:hover .module {
    transform: translateZ(-20px);
}
        <div class="container">
            <div class="module">
                sdfsdf
                <br />
                <br />
                <img src="http://placekitten.com/100/100" />
            </div>​
        </div>

`

于 2019-10-07T16:06:44.363 回答