先把图片的父元素的css样式,postion设置为relative,然后图片的postion设置为absolute,然后用js来改变的图片的left 和 top数值就可以改变图片的位置了。如果不设置父元素,那就将图片的postion设置为relative,也可以改变位置,JS同样。
下面是个简单的例子,你参考下
<!DOCTYPE html><html>
<head>
<meta charset="utf-8">
<title>TEST</title>
<style type="text/css">
*{margin: 0 padding: 0}
.wrap { position: relative }
#pic { position: absolute }
</style>
</head>
<body>
<div class="wrap">
<img id="pic" src="222.jpg">
</div>
<script type="text/javascript">
var pic = document.getElementById("pic")
pic.style.left=50+"px" //这里可以更改图片左边距
pic.style.top=30+"px" //这里可以更改图片的上边距
</script>
</body>
</html> <script type="text/javascript">
var pic = document.getElementById("pic")
pic.style.left=150+"px"
pic.style.top=130+"px"
</script>
原理:通过页面加载开始,先给图片一个占位图,将实际图片属性,放在自定义属性data_url里面,通过onscroll事件,检测图片的位置,如果图片进入可视区域,将data_url的实际图片设置给src检测方法:图片距离文档顶部距离-scrollTop <浏览器可视区域高度
img.onerror=function(){}图片对象加载失败后,自动调用
img.onload=function(){}图片对象加载成功后,自动调用