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 相关文章推荐
不同浏览器的怪癖小结
Jul 11 Javascript
JSON格式的键盘编码对照表
Jan 29 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
Sep 19 Javascript
js实现上传图片及时预览
May 07 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
Aug 20 Javascript
JavaScript中的ajax功能的概念和示例详解
Oct 17 Javascript
详解jQuery的表单验证插件--Validation
Dec 21 Javascript
jQuery实现最简单实用的分秒倒计时
Feb 05 Javascript
AJAX在JQuery中的应用详解
Jan 30 jQuery
在layer弹层layer.prompt中,修改placeholder的实现方法
Sep 27 Javascript
vue-resource post数据时碰到Django csrf问题的解决
Mar 13 Javascript
让你30分钟快速掌握vue3教程
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
php中文本数据翻页(留言本翻页)
2006/10/09 PHP
相对路径转化成绝对路径
2007/04/10 PHP
PHP高级对象构建 多个构造函数的使用
2012/02/05 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
2016/03/15 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
js最简单的拖拽效果实现代码
2010/09/24 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
layui表格实现代码
2017/05/20 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
python爬取各类文档方法归类汇总
2018/03/22 Python
Python类的继承用法示例
2019/01/31 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
python文件路径操作方法总结
2020/12/21 Python
python+opencv实现车道线检测
2021/02/19 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
CSS3制作轮播图的一种方法
2019/11/11 HTML / CSS
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
自动化专业本科毕业生求职信
2013/10/20 职场文书
临床医师个人自我评价
2014/04/06 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
培训讲师开场白
2015/06/01 职场文书
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技