思路: html代码: css代码: js代码:
利用js获取滚动条滚动距离,实现图片固定在屏幕的某个位置
1.获取对象距离顶部和左侧的距离;
2.获取元素对象;
3.当滚动条滚动时获取滚动条滚动的距离;
4.滚动条滚动时执行函数:对象距离顶部 / 左侧的距离变为原本距离顶部 / 左侧的距离+滚动条滚动像素数。<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="left"> <img src="images/z1.jpg" alt=""/> </div> <div id="right"> <img src="images/z2.jpg" alt=""/> </div> </body> </html>
*{ 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; }
var leftT;//左侧p距离顶部距离 var leftL;//左侧p距离左侧距离 var rightT;//右侧p距离顶部距离 var rightL;//右侧p距离左侧距离 var objLeft;//左侧p文档对象 var objRight;//右侧p文档对象 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; //设置左侧p距离顶部的像素 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;