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 相关文章推荐
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
connect中间件session、cookie的使用方法分享
Jun 17 Javascript
JavaScript获取指定元素位置的方法
Apr 08 Javascript
常用的Javascript数据验证插件
Aug 04 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
May 24 Javascript
JavaScript数据结构学习之数组、栈与队列
May 02 Javascript
微信小程序使用Socket的实例
Sep 19 Javascript
Node.js使用Express.Router的方法
Nov 14 Javascript
vue配置font-awesome5的方法步骤
Jan 27 Javascript
Vue对象赋值视图不更新问题及解决方法
Jun 03 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
Apr 26 Javascript
vue实现倒计时功能
Mar 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
Javascript Select操作大集合
2009/05/26 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
Python3处理文件中每个词的方法
2015/05/22 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
python Xpath语法的使用
2020/11/26 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
英国足球店:UK Soccer Shop
2017/11/19 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
乳制品整治工作方案
2014/05/29 职场文书
聘用意向书
2014/07/29 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
大学入学感言
2015/08/01 职场文书
德劲DE1102数字调谐收音机机评
2022/04/07 无线电