JS+CSS 实现 悬停广告

效果图

这里写图片描述

第一种

在onscroll方法中调用move方法
move方法中直接设置广告top为body卷曲的高度
缺点:没有缓慢移动的效果


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>移动的小广告</title>
</head>
<body onscroll="move()">
<textarea rows="500" cols="500">sfewr</textarea>
<div id="xgg" style="position: absolute;left: 0px;top: 0;">
    <img src="images/123.jpg" alt="">
</div>

<script>
    function  move(){
        var xgg=document.getElementById("xgg");
        xgg.style.top=document.body.scrollTop;
         }
</script>
</body>
</html>

第二种

有平滑移动的效果
原理:设置定时器每次设置top为一定高度 多次设置后达到卷曲的高度

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>悬浮平滑移动的小广告</title>
</head>
<body>
<textarea cols="500" rows="500">
     我的目的是为了出来滚动条 好实现scroll
 </textarea>
<div id="test" style="position: absolute;left: 0;top:50px">
    <img src="images/123.jpg" alt="" >
</div>
<script>
    var ScrollYLength=0;//body滚动的距离
    var lastScrollyLength=0;//div已经滚动的距离
    var percent=0;//百分比 一次移动多少百分比
    function  move() {
        ScrollYLength=document.body.scrollTop;
        percent=(ScrollYLength-lastScrollyLength)*0.1;
        percent=Math.ceil(percent);
        document.getElementById("test").style.top=parseInt(document.getElementById("test").style.top)+percent+"px";
        lastScrollyLength+=percent;
    }
    setInterval(move,10);

</script>
</body>

封装

function  Xgg(node){
        this.node=node;
        var that=this;
        var ScrollYLength=0;//body滚动的距离
        var lastScrollyLength=0;//div已经滚动的距离
        var percent=0;//百分比 一次移动多少百分比
        this.move=function(){
            setInterval(function(){
                ScrollYLength=document.body.scrollTop;
                percent=(ScrollYLength-lastScrollyLength)*0.1;
                percent=Math.ceil(percent);
                 that.node.style.top=parseInt(that.node.style.top)+percent+"px";
                lastScrollyLength+=percent;
            },10)
        }
    }

   var xgg=new Xgg(document.getElementById("test"));
    xgg.move();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值