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 相关文章推荐
线路分流自动跳转代码;希望对大家有用!
Dec 02 Javascript
基于jquery的分页控件(C#)
Jan 06 Javascript
获取表单控件原始(初始)值的方法
Aug 21 Javascript
JavaScript中的prototype和constructor简明总结
Apr 05 Javascript
浅谈JavaScript异常处理语句
Jun 26 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
Nov 16 Javascript
vue配置请求本地json数据的方法
Apr 11 Javascript
解决vue热替换失效的根本原因
Sep 19 Javascript
js中arguments对象的深入理解
May 14 Javascript
vue实现评论列表功能
Oct 25 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
Jul 15 Javascript
Vue开发中常见的套路和技巧总结
Nov 24 Vue.js
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
用PHP实现登陆验证码(类似条行码状)
2006/10/09 PHP
PHP url 加密解密函数代码
2011/08/26 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
php源码的使用方法讲解
2019/09/26 PHP
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
jquery数组之存放checkbox全选值示例代码
2013/12/20 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
详解Vue之计算属性
2020/06/20 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
python爬虫headers设置后无效的解决方法
2017/10/21 Python
Python单元和文档测试实例详解
2019/04/11 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
Python tcp传输代码实例解析
2020/03/18 Python
一套Java笔试题
2016/08/20 面试题
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
毕业生个人的求职信范文
2013/12/03 职场文书
中专生自我鉴定书范文
2013/12/28 职场文书
3分钟演讲稿
2014/04/30 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
工作犯错保证书
2015/05/11 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
MySQL创建表操作命令分享
2022/03/25 MySQL
DIY胆机必读:各国电子管评价
2022/04/06 无线电
Nginx限流和黑名单配置
2022/05/20 Servers