Was ist der seltsame Effekt von translator(-50%,-50%) auf transform-origin in CSS3?
typecho
typecho 2017-06-08 11:02:26
0
1
993
        <style>
        #test{
            width: 100px;
            height: 100px;
            background-color: red;
            transition: all 1s;
            position: absolute;
            left: 50%;
            top: 50%;
            margin-left: -50px;
            /*transform:translate(-50%,-50%);*/
            transform-origin: 50% 50%;
        }
        #test:hover{
            transform: scale(1.2, 1.2);
        }
    </style>
</head>
<body>
    <p id="test"></p>
</body>

Wenn ich eine negative Methode für den linken Rand verwende, um die Mitte auszurichten, und dann hineinzoome, wenn die Maus schwebt, ist der Mittelpunkt die obere und untere Mitte, die durch transform-origin festgelegt wurde, und es gibt kein Problem:

Aber wenn ich transform:translate(-50%,-50%) für die zentrierte Ausrichtung verwende:

    <style>
        #test{
            width: 100px;
            height: 100px;
            background-color: red;
            transition: all 1s;
            position: absolute;
            left: 50%;
            top: 50%;
            /*margin-left: -50px;*/
            transform:translate(-50%,-50%);
            transform-origin: 50% 50%;
        }
        #test:hover{
            transform: scale(1.2, 1.2);
        }
    </style>
</head>
<body>
    <p id="test"></p>
</body>

Wenn die Maus nach oben schwebt, scheint der Mittelpunkt der Vergrößerung in die obere linke Ecke zu gehen. Auch wenn ich transform-orgin einstelle, funktioniert es immer noch nicht,

Von der Konsole aus funktioniert das transform-origin-Attribut. Ich bin sehr verwirrt darüber, warum das passiert. Bitte geben Sie mir einen Rat

typecho
typecho

Following the voice in heart.

Antworte allen(1)
大家讲道理

很明显的错误,hover 的时候把原有的 translate 覆盖掉了

正确写法如下

#test:hover{
  transform: scale(1.2, 1.2) translate(-50%,-50%);
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage