JS实现悬浮移动窗口(悬浮广告)的特效

 更新时间:2013年03月12日 10:57:18   作者:  
页面加载完成之后向页面插入窗口,之后向窗口插入关闭按钮,使用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;width: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="https://www.jb51.net/workspace/js/jquery-1.7.min.js"></script>
        <script>
            $(function(){
                //写入div
                $("<div/>",{id:"moveWindow"}).css({width:"200px",height:"200px",border:"solid 3px #2F74A7",background:"#663398",position:"absolute",cursor:"pointer"}).appendTo("body");
                //写入关闭按钮
                $("<div/>",{id:"removeMW"}).css({width:"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>

基本思路:

1.页面加载完成之后向页面插入窗口,之后向窗口插入关闭按钮

2.使用setInterval()函数触发moves()函数开始动画

3.moves函数:首先获取当前窗口位置,之后随时间使窗口位移,每当位移到游览器边缘时反向运动

4.添加其他事件:鼠标悬停停止运动,鼠标离开继续运动,点击按钮关闭窗口

ps:不建议使用这个特效,影响用户体验

希望对你有所帮助!^_^!~~

相关文章

  • JavaScript中小数点精度丢失的原因以及解决方法

    JavaScript中小数点精度丢失的原因以及解决方法

    计算机再大的内存它也存不下,所以不能存储一个相对于数学来说的值,只能存储一个近似值,所以当计算机存储后再取出来用时就会出现精度问题,下面这篇文章主要给大家介绍了关于JavaScript中小数点精度丢失的原因以及解决方法,需要的朋友可以参考下
    2023-10-10
  • javascript鼠标右键菜单自定义效果

    javascript鼠标右键菜单自定义效果

    设计专属于自己的右键菜单,添加自己需要的快捷方式,本文就为大家分享自定义javascript鼠标右键菜单的实现方法,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Javascript中判断变量是数组还是对象(array还是object)

    Javascript中判断变量是数组还是对象(array还是object)

    怎样判断一个JavaScript变量是array还是obiect,或许有很多初学者对此不是很清楚吧,下面为大家详细解答下,希望对大家有所帮助
    2013-08-08
  • 微信小程序生命周期和WXS使用实例详解

    微信小程序生命周期和WXS使用实例详解

    微信小程序中的wxs文件,大家或多或少都有见过,下面这篇文章主要给大家介绍了关于微信小程序生命周期和WXS使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • js图片上传中file、bolb、base64图片之间的相互转化

    js图片上传中file、bolb、base64图片之间的相互转化

    这篇文章主要介绍了js图片上传中file、bolb、base64图片之间的相互转化,blob转file,blob转base64,base64转file,使用canvas压缩图片,需要的朋友可以参考下
    2022-05-05
  • js对象属性名驼峰式转下划线的实例代码

    js对象属性名驼峰式转下划线的实例代码

    这篇文章主要介绍了js对象属性名驼峰式转下划线的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • js实现炫酷的左右轮播图

    js实现炫酷的左右轮播图

    这篇文章主要为大家详细介绍了基于JavaScript实现左右轮播图的具体代码,具有一定的参考价值,感兴趣的朋友可以参考一下
    2017-01-01
  • JS无缝滚动效果实现方法分析

    JS无缝滚动效果实现方法分析

    这篇文章主要介绍了JS无缝滚动效果实现方法,结合实例形式较为详细的分析了无缝滚动的原理、实现技巧与相关注意事项,需要的朋友可以参考下
    2016-12-12
  • js获取元素的外链样式的简单实现方法

    js获取元素的外链样式的简单实现方法

    下面小编就为大家带来一篇js获取元素的外链样式的简单实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 详解webpack中的publicpath

    详解webpack中的publicpath

    这篇文章主要介绍了webpack中的publicpath,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01

最新评论