原生js实现悬浮框滑动动画

  最近在做个人博客想做个相册,鼠标悬浮后出现个div并且鼠标移动到哪个相册,div跟随到哪个相片上。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    .imgCon {
        float: left;
    }

    img {
        display: block;
        float: left;
        margin: 0px;
        padding: 0px;
        width: 300px;
        height: 200px;
    }
    /*img:hover {
        z-index: -2;
        transform: scale(1.3);
        transition: transform 2s;
    }*/

    .upimg {
        position: relative;
        width: 300px;
        height: 200px;
        opacity: 0.6;
        background-color: black;
        /*display: none;*/
        visibility: hidden;
        transition: all 1s ease-in-out;
    }

    .hut {
        width: 600px;
        margin-left: 300px;
    }
    </style>
</head>

<body>
    <div class="hut" οnmοuseοver="getposition()">
        <div class="imgCon">
            <img src="1.jpg" id="img1">
            <div class="upimg" id="upimg"></div>
        </div>
        <img src="1.jpg" >
        <img src="1.jpg" >
        <img src="1.jpg" >
    </div>
    <script type="text/javascript">

    function getposition() {
        var e = event || window.event;
        var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
        var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
        var x = e.pageX || e.clientX + scrollX
        var y = e.pageY || e.clientY + scrollY;
        var img = document.getElementById('img1')
        var upimg = document.getElementById('upimg')
        upimg.style.visibility = 'visible'
        upimg.style.left = `${parseInt(x / 300) * 300 - 300}px`
        upimg.style.top = `${parseInt(y / 200) * 200}px`
        return { 'x': x, 'y': y };
    }
    </script>
</body>

</html>

  上面给出了代码,首先是判断鼠标坐标xy,然后取整,设置悬浮div的坐标,然后通过设置transition来实现动画,很简单。欢迎指正

转载于:https://www.cnblogs.com/qingfengliuyun092815/p/8250662.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值