css变量完成拖动元素效果

css变量可以有js进行设置,在move事件中,实时修改css变量,就可以实现元素的拖动效果。同时变量可以被复用,其他的元素可以使用此变量来得出别的效果。

下面是css变量拖动效果的demo:

.box{
     width: 100px;
     height: 100px;
     background-color: aquamarine;
     transform: translate(var(--mouse-x),var(--mouse-y));
}
<div class="box"></div>
复制代码
document.addEventListener('mousedown', e => {   
    //按下计算offset
    let rect = e.target.getBoundingClientRect();
    let offset = {
        left: e.clientX - rect.left,
        top: e.clientY - rect.top
    }
    //定义move函数
    let moveFunc = function(e){
        const docStyle = document.documentElement.style;
        docStyle.setProperty('--mouse-x', e.clientX - offset.left + 'px');
        docStyle.setProperty('--mouse-y', e.clientY - offset.top + 'px');
    }
    
    //添加move事件
    document.addEventListener('mousemove', moveFunc);

    //弹起解绑move事件
    document.addEventListener('mouseup', e => {
        document.removeEventListener('mousemove',moveFunc);
    })
})
复制代码

 

posted @   全玉  阅读(1048)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-08-20 dva的基本用法
2018-08-20 redux-saga基本用法
2018-08-20 react-redux的基本用法
2017-08-20 node命令行开发
点击右上角即可分享
微信分享提示