漂浮广告的原理:用通俗一点的话来说,漂浮广告就是一个在不断改变自身位置的div(当然亦可以是其他),并且在遇到界面的边界时改变当前运动的方向;


**第一步:**制作一个能够移动的div,并给各项参数赋值

<div id="div1"></div>
var div = document.getElementById("div1");div.style.width = "200px"div.style.height = "200px"div.style.background = "red";// 相对定位div.style.position = "absolute";var offsetx = 0;var offsety = 0;// 初始距离上边界距离div.style.top = offsety;// 初始距离左边界距离div.style.left = offsetx;// X轴移动方向标志位 ,1为从左到右,0为从右到左var flagx = 1;// y轴移动方向标志位 ,1为从上到下,0为从下到上var flagy1 = 1;// 移动步长var step = 20;

**第二步 :**找到正确的下边界位置,上边界和左边界是div一开始接挨着的,所以我们需要找到下边界和右边界。当div移动到最大能够移动的距离,不就是咱们要找的边界了吗

     // 网页可视区域高度var seeHeight = document.documentElement.clientHeight;// 网页可视区域宽度var seeWidth = document.documentElement.clientWidth;// 网页可视区域宽度 - 自身宽度 = 在页面最大可移动宽度var maxLeft = seeWidth - 200;// 网页可视区域宽度 - 自身高度 = 在页面最大可移动高度var maxTop = seeHeight - 200;

**第三步:**开始移动,

// 设置定时器var t = setInterval(move, 30);function move() {// 移动yidong(flagx, flagy);// 当y轴达到下边界时,改变在y轴的移动方向if (offsety >= maxTop) {flagy = 0;}// 当x轴达到下边界时,改变在x轴的移动方向if (offsetx >= maxLeft) {flagx = 0;}// 当y轴达到上边界时,改变在y轴的移动方向if (offsety < 0) {flagy = 1;}// 当x轴达到上边界时,改变在x轴的移动方向if (offsetx < 0) {flagx = 1;}div.style.top = offsety + "px"; // 大于页面的高度  top 小于0div.style.left = offsetx + "px"; // 大于页面总宽度  left 小于 0 }function yidong(x, y) {if (x == 1 && y == 1) {offsetx += step;offsety += step;}if (x == 1 && y == 0) {offsetx += step;offsety -= step;}if (x == 0 && y == 1) {offsetx -= step;offsety += step;}if (x == 0 && y == 0) {offsetx -= step;offsety -= step;}}

**最后一步:**鼠标移入时关闭定时器,移除时再打开定时器

 // 鼠标移入时,漂浮广告暂停div.addEventListener("mouseover", function() {clearInterval(t);console.log(111);});// 鼠标移出时,漂浮广告开启div.addEventListener("mouseout", function() {clearInterval(t);t = setInterval(move, 30);});```

原生JS制作简单的漂浮广告相关推荐

  1. css画钟表_利用css+原生js制作简单的钟表

    利用css+原生js制作简单的钟表.效果如下所示 实现该效果,分三大块:html.javascript.css html部分html部分比较简单,定义一个clock的div,内部有原点.时分秒针.日期 ...

  2. php简单网页制作代码,用HTML和CSS以及JS制作简单的网页菜单界面的代码

    这篇文章主要介绍了使用HTML+CSS+JS制作简单的网页菜单界面,这个ABROAD项目所使用的JavaScript部分代码非常简单,需要的朋友可以参考下 写ABROAD项目用到了标签这个东东,其实标 ...

  3. 原生JS制作自动+手动轮播图,附带二级分类菜单

    原生JS制作自动+手动轮播图,附带二级分类菜单 包含以下功能: 1.鼠标移开自动轮播 2.鼠标移入停止自动轮播 3.点击左右按钮可手动切换图片 4.点击索引小圆点可手动切换图片 5.鼠标移入一级菜单展 ...

  4. 原生JS实现简单放大镜效果

    [前言] 本文介绍下原生JS实现简单图片放大镜效果 [主体] 时间问题,直接上源码 <!DOCTYPE html> <html> <head><meta ch ...

  5. 深圳java培训:使用原生JS重构简单的音乐播放器

    深圳java培训:使用原生JS重构简单的音乐播放器 上次,我们使用Jquery开发了一款简单的音乐播放器(如下图), 后来学生希望能够用原生的JS重构一次, 那么,下面就来看看如何使用原生的JS重构吧 ...

  6. 如何用原生JS制作图片时钟

    程序设计之道无远弗届,御晨风而返.---- 杰佛瑞 · 詹姆士 今天分享一个小demo,如何用原生JS制作图片时钟,话不多说上代码. html[外链图片转存失败(img-mD0n42FM-156223 ...

  7. 原生js制作简易DOM拾色器实例教程

    本教程的目的是为了帮助初学者更好的掌握DOM和数组相关操作,实例效果如下图所示. 可以看到实例中的拾色器分为三个部分:拾色区域.色系区域.显示颜色区域.先写出这三个部分的html代码,如下所示: &l ...

  8. js制作简单的时钟v1.0

    js制作简单的时钟 getFullYear():获取四位数年份 getMonth():获取月份 getDate:获取日期 getDay:获取一周中的周几 getHours():获取小时 getMinu ...

  9. 原生js实现简单JSONP

    JSONP是一种非常常见的实现跨域请求的方法.其基本思想是利用浏览器中可以跨域请求外链的JS文件,利用这一特性实现数据传输. 用原生JS实现JSONP非常简单,无非几点: 1)定义一个函数,用于处理接 ...

最新文章

  1. CodeForces 157A Game Outcome
  2. Data Guard相关参数学习介绍
  3. 华大 MCU 之一 HC32F460 替换 STM32F411 移植记录
  4. Apache Flink 零基础入门(二十一)Flink HistoryServer概述与配置
  5. Win10 OpenCV3.3.0+VS2013配置大坑,OpenCV解决方案编译报错“找不到python36_d.lib”错误...
  6. Node.js 入门详解(一)
  7. 实例浅析javascript变量作用域
  8. java流被关闭后怎样重新打开,java – 如何停止MediaPlayer流然后重新启动它? Android的...
  9. html背景只向x轴扩散,有趣的css—简单的下雨效果2.0版
  10. 2015年4月20 号的日志
  11. Crypto.com宣布将在2021年1月19日下架XRP
  12. DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601
  13. hadoop集群虚拟机配置
  14. 【java】之常用四大线程池用法以及ThreadPoolExecutor详解
  15. Package ffnvcodec was not found in the pkg-config search path
  16. qt实现无边框窗体的拉伸和拖动(附原理)
  17. 记录贴:阿里云 ECS服务器CentOS系统 搭建 Hexo 博客详细教程
  18. linux live运行 光盘弹出复,通过liveCD进行ubuntu启动修复
  19. C# 导出Excel并插入二维码图片
  20. 淮阴工学院计算机硕士生导师,硕士生导师概况

热门文章

  1. MATLAB神经网络工具箱输入输出预处理相关参数设置
  2. 微信小程序:微信公众号关联小程序步骤
  3. 同一个世界同一个梦想同一个标准
  4. Java小游戏《皇帝后妃》
  5. [RK3568 Android12] 音频及路由
  6. 脸书重回通讯平台战争,为什么推播2.0这么重要?
  7. 珠心算对小孩用处大吗
  8. matlab 符号运算 数值,MATLAB中的微积分运算(数值符号)
  9. 字符串 转换成 二维码
  10. C# API方式串口读写(转自叶帆工作室)