一、介绍

getBoundingClientRect() 返回的是矩形的集合,表示了当前盒子在浏览器中的位置以及自身占据的空间的大小,除了 width 和 height 以外的属性是相对于 视图窗口的左上角 来计算的。
效果演示
在这里插入图片描述
代码
需要先把父元素设置为3D
在这里插入图片描述
js代码

//鼠标跟随 3D 旋转动效
$('.about-item div').mousemove(function (e) {
    requestAnimationFrame(() => {
        const {x, y, width, height} = this.getBoundingClientRect()

        let calcX = -(e.clientY - y - (height / 2)) / 20
        let calcY = (e.clientX - x - (width / 2)) / 20

        $(this).css({
            transform: `rotateX(${calcX}deg) rotateY(${calcY}deg)`
        })
    })
}).mouseleave(function (e) {
    requestAnimationFrame(() => {
        $(this).css({
            transform: `rotateX(${0}deg) rotateY(${0}deg)`
        })
    })
})

主页还有更多前端交互效果

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐