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


Posted in Javascript onMarch 12, 2013

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://3water.com/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 相关文章推荐
JQuery Easyui Tree的oncheck事件实现代码
May 28 Javascript
解析Jquery取得iframe中元素的几种方法
Jul 04 Javascript
JavaScript中的立即执行函数表达式介绍
Mar 15 Javascript
JQuery包裹DOM节点的方法
Jun 11 Javascript
浅析JS动态创建元素【两种方法】
Apr 20 Javascript
JS版微信6.0分享接口用法分析
Oct 13 Javascript
js实现手机拍照上传功能
Jan 17 Javascript
node.js 抓取代理ip实例代码
Apr 30 Javascript
JavaScript原生实现观察者模式的示例
Dec 15 Javascript
elementui的默认样式修改方法
Feb 23 Javascript
JS实现骰子3D旋转效果
Oct 24 Javascript
如何基于JS截获动态代码
Dec 25 Javascript
js弹出模式对话框,并接收回传值的方法
Mar 12 #Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
Mar 11 #Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
Mar 11 #Javascript
JS中Iframe之间传值的方法
Mar 11 #Javascript
JS中Iframe之间传值及子页面与父页面应用
Mar 11 #Javascript
js将iframe中控件的值传到主页面控件中的实现方法
Mar 11 #Javascript
js比较和逻辑运算符的介绍
Mar 10 #Javascript
You might like
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
Python多进程fork()函数详解
2019/02/22 Python
Django框架模板的使用方法示例
2019/05/25 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
基于python实现计算两组数据P值
2020/07/10 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
安康杯竞赛活动总结
2014/05/05 职场文书
素质教育标语
2014/06/27 职场文书
法人代表证明书格式
2014/10/01 职场文书
开展批评与自我批评心得体会
2014/10/17 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书