原生js漂浮广告效果

原生js漂浮广告效果

静态页面代码

<body>
    <div id="box">
        <img src="1.jpg" alt="">
    </div>
</body>

css样式

 *{
            padding: 0;
            margin: 0;
        }
         #box{
             width: 200px;
             height: 200px;
             border: solid 1px black;
             position: absolute;
             top: 0;
             left: 0;
             background: url("../../img/20160912160251944.jpg")no-repeat;
         }
        img{
            width: 20px;
            height: 20px;
            float: right;
        }

这些样式只供参考,可根据个人喜好更改

js代码区域

 //获取元素
    var box = document.getElementById('box');
    var close = document.getElementsByTagName("img")[0];
    //允许的left最大值
    var maxleft = document.documentElement.clientWidth-box.offsetWidth;
    //允许的top最大值
    var maxtop=  document.documentElement.clientHeight-box.offsetHeight;
    //设置一下响应式 当屏幕变化的时候获取新值
    window.onresize=function () {
         maxleft = document.documentElement.clientWidth-box.offsetWidth;
         maxtop=  document.documentElement.clientHeight-box.offsetHeight;
    }
    //距上距离每次变化的值  单位px
    var t=4;
    //距左距离每次变化的值  单位px
    var l=4;
    //漂浮函数
    function  piaofu() {
        //获取初始距左的距离
        var oldleft=box.offsetLeft;
        //设置新距左的距离
        var newleft =oldleft+l;
        //获取初始距上的距离
        var oldtop=box.offsetTop;
        //设置新距上的距离
        var newtop =oldtop+t;
        //如果距上的距离超过高度最大值,重新赋值为高度最大值
        if(newtop>maxtop){
            newtop=maxtop;
        }
        //如果距左的距离超过距左的最大值,重新赋值为距左最大值
        if(newleft>maxleft){
            newleft=maxleft;
        }
        //如果距上的距离小于高度最小值,重新赋值为高度最小值
        if(newtop<0){
            newtop=0
        }
        //如果距左的距离小于距左的最小值,重新赋值为距左最小值
        if(newleft<0){
            newleft=0
        }
        box.style.left=newleft+"px";
        box.style.top=newtop+"px";
        //进行判断
        if(newtop==maxtop ||newtop==0){
            t=-1*t;
        }
        if(newleft==maxleft ||newleft==0){
            l=-1*l;
        }
        // if(box.style.display=="none"){
        //     setTimeout(function () {
        //         box.style.display="block"
        //     },3000)
        // }
    }

    //设置定时器
    var timer= setInterval(piaofu,20)
    //当鼠标放上的时候清楚定时器
    box.onmouseover=function () {
          clearInterval(timer)
    }
    //当鼠标移走的时候定时器继续
    box.onmouseout=function () {
        timer= setInterval(piaofu,20)
    }
    //当点击关闭按钮时隐藏
    close.onclick=function () {
        box.style.display='none'
    }

以上这些是我个人的想法,欢迎大家进行讨论、提出意见或建议,共同进步,感谢大家的浏览!

猜你喜欢

转载自blog.csdn.net/weixin_43708754/article/details/86377790