js实现图片浮动



<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js实现图片轮播</title>
<style type="text/css">
#main{width:1024px; margin:20px auto;text-align:center;}
#adv{width:200px;height:400px;position:absolute;top:10px;left:20px;}
a {border:1px solid gray;background-color:green; position:absolute;top:0px;left:150px;color:grap;}

</style>
<script type="text/javascript">
var localX; 
var localY;
//预加载 js的执行顺序是自上而下的,所以要用预加载
onload = function()
{
var adv = $("#adv");
//adv.style.top  adv.style.left    只能取到行内的样式
localX = document.defaultView.getComputedStyle(adv,null).left; //可以取到所有的样式
localY = document.defaultView.getComputedStyle(adv,null).top;

}

//添加滚动事件
onscroll = function()
{
//取到滚动距顶部的距离  采用容错处理 ,2中方法
var scrollX = document.documentElement.scrollLeft ? document.documentElement.scrollLeft:
document.body.scrollLeft;


var scrollY = document.documentElement.scrollTop ? document.documentElement.scrollTop:
document.body.scrollTop;
//要浮动的图片的距离
$("#adv").style.left = scrollX +parseInt(localX)+"px";
$("#adv").style.top = scrollY +parseInt(localY)+"px";

}
//关闭浮动广告的函数
function colseAdv()
{
document.body.removeChild($("#adv"));
return false; 
}

//通过getElement对象的方法进行封装
//要求:id使用#前缀    class使用.前缀   标签不用
function $(name)
{
if(name.charAt(0) == '#')
{
return document.getElementById(name.substring(1));
}
else if(name.charAt(0) == '.')
{
return document.getElementsByClassName(name.substring(1));
}
else
{
return document.getElementsByTagName(name);
}
}

</script>
</head>
<body>
<div id = 'main'>
<img src= '../images/top.jpg' />
<img src= '../images/content1.jpg' />
<img src= '../images/content2.jpg' />
<img src ='../images/foot.jpg' />
</div>
<div id = 'adv'>
<!-- 要浮动的图片 -->
<img  src="../images/left.jpg"/>
<a href = "#" onclick = "return colseAdv()">关闭</a>

</div>
</body>
</html>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值