javascript - 我正在尝试旋转包含嵌套 div 的 div,而 div 是垂直反射的吗?

标签 javascript css reactjs

我试图在鼠标悬停时将此 ccs 艺术旋转 360 度,但由于某种原因,整个 div 似乎反射(reflect)在原点位置下。我对 react 和 css 还很陌生,所以老实说,我不确定为什么当我将鼠标悬停在图像上时图像会垂直翻转

默认 View .css:

.LilGuy:hover{
    -moz-transform: rotate(360deg) ;
    -webkit-transform:  rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
    transition: all 2s ease;
    transform-origin: center center;

}

DefaultView.js:

import React from 'react';
import './DefaultView.css'

export default class DefaultView extends React.Component {


    render(){
        return(
            <div
                style={{
                    height:"100%",
                    width:"100%",
                    position:"absolute",
                    overflow:"hidden"
                }}>
                <div
                    className="bg"
                    style={{
                        background:"radial-gradient(#034FFF,#021645)",
                        position:"relative",
                        width:"100%",
                        height:"100%"
                        }}
                />
                <div className="LilGuy">
                    <div 
                        className="LilDudeOutLine"
                        style={{
                            background:"#FFFF",
                            position:"absolute",
                            width:"510px",
                            height:"510px",
                            top:"50%",
                            left:"50%",
                            transform:"translate(-50%,-50%)",
                            borderRadius:"50px"
                        }}
                    />

                    <div 
                        className="LilDude"
                        style={{
                            background:"#012787",
                            position:"absolute",
                            width:"500px",
                            height:"500px",
                            top:"50%",
                            left:"50%",
                            transform:"translate(-50%,-50%)",
                            borderRadius:"50px"
                        }}
                    />
                    <div 
                        className="eye-left"
                        style={{
                            background:"#034FFF",
                            position:"absolute",
                            width:"75px",
                            height:"75px",
                            top:"40%",
                            left:"44%",
                            transform:"translate(-50%,-50%)",
                            borderRadius:"125px"
                        }}
                    />

                    <div 
                        className="eye-right"
                        style={{
                            background:"#034FFF",
                            position:"absolute",
                            width:"75px",
                            height:"75px",
                            top:"40%",
                            left:"56%",
                            transform:"translate(-50%,-50%)",
                            borderRadius:"125px"
                        }}
                    />
                    <div 
                        className="pupil-left"
                        style={{
                            background:"#FFFF",
                            position:"absolute",
                            width:"28px",
                            height:"30px",
                            top:"38.6%",
                            left:"43.99999999%",
                            transform:"translate(-50%,-50%)",
                            borderRadius:"60px"
                        }}
                    />

                    <div 
                        className="pupil-right"
                        style={{
                            background:"#FFFF",
                            position:"absolute",
                            width:"28px",
                            height:"30px",
                            top:"38.6%",
                            left:"56%",
                            transform:"translate(-50%,-50%)",
                            borderRadius:"60px"
                            }}
                        />

                    <div 
                        className="mouth"
                        style={{
                            background:"#FFFF",
                            position:"absolute",
                            width:"150px",
                            height:"50px",
                            top:"50%",
                            left:"50%",
                            transform:"translate(-50%,-50%)",
                            borderRadius: '10px',
                            borderBottomLeftRadius: '40px',
                            borderBottom: '4px solid #034FFF',
                            borderBottomRightRadius: '40px'

                        }}
                    />
                </div> 

            </div>





        )
    }
}

https://gyazo.com/595b80ee2affbf4678d5f6453dd7175f

感谢您的帮助!

最佳答案

我做了一些样式设计并尝试使用不同的变换基数,它更接近您的需要。您仍然需要为转换源数字尝试更多的数字集,即 .LilGuy:hover 类中的数字。

这里是codesandbox链接

https://codesandbox.io/embed/6vz0nn2x1z

如果你将鼠标悬停在它的某些部分上它仍然会闪烁,因为那个 div 有很大的尺寸并且当你悬停在 div 的部分上时 div 将在悬停时移动,这会导致结束悬停效果并尝试把 div 放回原处,所以在那种情况下它会闪烁一下。但是,您可以更改我用来满足您需要的转换源编号。

关于javascript - 我正在尝试旋转包含嵌套 div 的 div,而 div 是垂直反射的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55821998/

相关文章:

javascript - 什么是结构框架?

html - div 中的 CSS/HTML 奇怪的文本位置

javascript - 有条件地 react native 更改按钮不透明度

reactjs - 如何处理一个重载中存在而另一重载中不存在的属性?

javascript - VueJS 换行符未正确呈现

javascript - jQuery 的 .css() 方法实际上是 CSS 吗?

javascript - 使用 D3.js 加载和解析多个 csv 文件

javascript - 使用 jQuery wrapAll() 包装多个重复出现的元素

html - 我怎样才能得到这样的 table ?

reactjs - React-admin:如何将更多参数传递给 GET_LIST 类型的 dataProvider