zoukankan      html  css  js  c++  java
  • JS实现悬浮移动窗口(悬浮广告)的特效

    页面加载完成之后向页面插入窗口,之后向窗口插入关闭按钮,使用setInterval()函数触发moves()函数开始动画
     

    js方法:

    复制代码代码如下:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
            <title> New Document </title>
            <meta name="Generator" content="EditPlus">
            <meta name="Author" content="">
            <meta name="Keywords" content="">
            <meta name="Description" content="">
            <script type="text/javascript">
                window.onload=function(){
                    //写入
                    var oneInner = document.createElement("div");
                    oneInner.setAttribute("style","background:#663398;position:absolute;100px;height:100px;border:solid 3px #2F74A7;cursor:pointer;");
                    var oneButton = document.createElement("input");
                    oneButton.setAttribute("type","button");
                    oneButton.setAttribute("value","x");
                    if (oneButton.style.cssFloat)
                    {
                        oneButton.style.cssFloat="right"
                    }
                    else
                    {oneButton.style.styleFloat="right"}
                    oneInner.appendChild(oneButton);
                    document.body.appendChild(oneInner);

                    //定时器
                    var a1a = setInterval(moves,100);
                    //函数

                    var x = 10;
                    var y = 10;

                    function moves(){
                        var tops = oneInner.offsetTop
                        var lefts = oneInner.offsetLeft

                        if (lefts>=document.documentElement.clientWidth-oneInner.offsetWidth||lefts<=0)
                        {
                            x=-x
                        }

                        if (tops>=document.documentElement.clientHeight-oneInner.offsetHeight||tops<=0)
                        {
                            y=-y
                        }

                        tops+=y;
                        lefts+=x;

                        oneInner.style.top=tops+"px"
                        oneInner.style.left=lefts+"px"
                    }

                    //悬停停止
                    oneInner.onmouseover=function(){
                        clearInterval(a1a);
                    }
                    //放手继续运动
                    oneInner.onmouseout=function(){
                        a1a =setInterval(moves,100);
                    }
                    //删除
                    oneButton.onclick=function(){
                        document.body.removeChild(oneInner);
                    }
                }
            </script>

        </head>

        <body>


        </body>
    </html>

    jquery方法:

    复制代码代码如下:

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <script type="text/javascript" src="http://www.jb51.net/workspace/js/jquery-1.7.min.js"></script>
            <script>
                $(function(){
                    //写入div
                    $("<div/>",{id:"moveWindow"}).css({"200px",height:"200px",border:"solid 3px #2F74A7",background:"#663398",position:"absolute",cursor:"pointer"}).appendTo("body");
                    //写入关闭按钮
                    $("<div/>",{id:"removeMW"}).css({"20px",height:"20px",background:"red",float:"right"}).appendTo("#moveWindow");
                    //定时器
                    var move = setInterval(moves,100);
                    var x= 10;
                    var y= 10;

                    function moves (){
                        var mw = $("#moveWindow").offset();
                        var lefts =mw.left;
                        var tops = mw.top;

                        if (lefts>=$(window).width()-$("#moveWindow").width()||lefts<=0)
                        {
                            x=-x
                        }

                        if (tops>=$(window).height()-$("#moveWindow").height()||tops<=0)
                        {
                            y=-y
                        }
                        lefts+=x;
                        tops+=y;

                        $("#moveWindow").offset({top:tops,left:lefts});

                    }
                    //悬停停止运动
                    $("#moveWindow").mouseover(function(){
                        clearInterval(move);
                    });
                    //移开鼠标后继续运动
                    $("#moveWindow").mouseout(function(){
                        move = setInterval(moves,100);
                    });
                    //点击按钮关闭
                    $("#removeMW").click(function(){
                        $("#moveWindow").remove();
                    });
                })
            </script>
        </head>
        <body>
        </body>
    </html>

  • 相关阅读:
    Educational Codeforces Round 83 --- F. AND Segments
    Educational Codeforces Round 83 --- G. Autocompletion
    SEERC 2019 A.Max or Min
    2019-2020 ICPC Southwestern European Regional Programming Contest(Gym 102501)
    Educational Codeforces Round 78 --- F. Cards
    今天我学习了一门全新的语言
    codeforces 1323D 题解(数学)
    Educational Codeforces Round 80 (Div. 2) 题解 1288A 1288B 1288C 1288D 1288E
    Educational Codeforces Round 81 (Div. 2) 题解 1295A 1295B 1295C 1295D 1295E 1295F
    Codeforces Round #617 (Div. 3) 题解 1296C 1296D 1296E 1296F
  • 原文地址:https://www.cnblogs.com/dingjiaoyang/p/5910223.html
Copyright © 2011-2022 走看看