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实现兼容各大浏览器的Enter回车切换输入焦点的方法
Sep 01 Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 Javascript
Javascript类型转换的规则实例解析
Feb 23 Javascript
Node.js操作Firebird数据库教程
Mar 04 Javascript
js仿百度登录页实现拖动窗口效果
Mar 11 Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 Javascript
setTimeout学习小结
Feb 08 Javascript
vue实现验证码按钮倒计时功能
Apr 10 Javascript
jquery插件开发模式实例详解
Jul 20 jQuery
Vue路由守卫之路由独享守卫
Sep 25 Javascript
Vue自定义组件的四种方式示例详解
Feb 28 Javascript
JS性能优化实现方法及优点进行
Aug 30 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
谈谈新手如何学习PHP 默默经典版本
2009/08/04 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
Python的Django框架中的数据过滤功能
2015/07/17 Python
Django返回json数据用法示例
2016/09/18 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
培训楼经理岗位责任制
2014/02/10 职场文书
内勤主管岗位职责
2014/04/03 职场文书
小学语文教研活动总结
2014/07/01 职场文书
2014年学习厉行节约反对浪费思想汇报
2014/09/10 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android