利用js获取滚动条滚动距离,实现图片固定在屏幕的某个位置

利用js获取滚动条滚动距离,实现图片固定在屏幕的某个位置

思路:
1.获取对象距离顶部和左侧的距离;
2.获取元素对象;
3.当滚动条滚动时获取滚动条滚动的距离;
4.滚动条滚动时执行函数:对象距离顶部 / 左侧的距离变为原本距离顶部 / 左侧的距离+滚动条滚动像素数。

html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div class="left" id="left">
        <img src="images/z1.jpg" alt=""/>
    </div>
    <div class="right" id="right">
        <img src="images/z2.jpg" alt=""/>
    </div>
</body>
</html>

css代码:

*{
            margin: 0;
            padding: 0;
        }
        body{
            width: 2000px;
            height: 2000px;
        }
        .left{
            position: absolute;
            width: 110px;
            height: 110px;
            top: 100px;
            left: 50px;
        }
        .right{
            position: absolute;
            width: 110px;
            height: 110px;
            top: 100px;
            left: 1360px;
        }

js代码:

 var leftT;//左侧div距离顶部距离
        var leftL;//左侧div距离左侧距离
        var rightT;//右侧div距离顶部距离
        var rightL;//右侧div距离左侧距离

        var objLeft;//左侧div文档对象
        var objRight;//右侧div文档对象

        function place(){
            objLeft=document.getElementById("left");
            objRight=document.getElementById("right");
            leftT=document.defaultView.getComputedStyle(objLeft,null).top;
            leftL=document.defaultView.getComputedStyle(objLeft,null).left;
            rightT=document.defaultView.getComputedStyle(objRight,null).top;
            rightL=document.defaultView.getComputedStyle(objRight,null).left;

        }
        //获取滚动条滚动的像素数
        function move(){
            var scrollT=document.documentElement.scrollTop;
            var scrollL=document.documentElement.scrollLeft;
            //设置左侧div距离顶部的像素
            objLeft.style.top=parseInt(leftT)+scrollT+"px";
            objLeft.style.left=parseInt(leftL)+scrollL+"px";
            objRight.style.top=parseInt(rightT)+scrollT+"px";
            objRight.style.left=parseInt(rightL)+scrollL+"px";
        }
        window.onload=place;
        window.onscroll=move;


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值