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 相关文章推荐
用正则表达式 动态创建/增加css style script 兼容IE firefox
Mar 10 Javascript
js正文内容高亮效果的实现方法
Jun 30 Javascript
JavaScript实现动态删除列表框值的方法
Aug 12 Javascript
谈谈AngularJs中的隐藏和显示
Dec 09 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
JS使用cookie设置样式的方法
Jun 30 Javascript
javascript 初学教程及五子棋小程序的简单实现
Jul 04 Javascript
Vue中建立全局引用或者全局命令的方法
Aug 21 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
Mar 13 Javascript
vue 返回上一页,页面样式错乱的解决
Nov 14 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
Apr 07 Javascript
原生js实现简单轮播图
Oct 26 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
Apache设置虚拟WEB
2006/10/09 PHP
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
PHP新手上路(十四)
2006/10/09 PHP
php实现水仙花数示例分享
2014/04/03 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
js可突破windows弹退效果代码
2008/08/09 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
jQuery 选择器详解
2015/01/19 Javascript
js获取内联样式的方法
2015/01/27 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
Python 文件和输入输出小结
2013/10/09 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
Django ORM filter() 的运用详解
2020/05/14 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
幼儿园开学家长寄语
2014/01/19 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
居委会工作总结2015
2015/05/18 职场文书