不多说先上效果图:

如何实实现上面的效果呢,代码如下:

html部分:

<!--   html部分定义个几个div盒子    -->

<!--   这里是一个显示mobile的div -->
<div class="mobileDiv" style="display:block;">
<a href="mailto:zhangjuncheng@csii.com.cn">
<div class="mobileCooperateDialog floatDiv">
<span>合作垂询</span>
</div>
</a>

<div class="mobileleaveMsgDialog floatDiv" οnclick="window.location.href='${(site.siteUrl)!}/lxwm/givemsg/index.html'"  >
<span>留言我们</span>
</div>
<div class="mobilesaleLine floatDiv">
<span>销售热线 010-6588718</span>
</div>
<div class="mobilecomplain floatDiv" οnclick="window.location.href='${(site.siteUrl)!}/lxwm/complain/index.html'">
<span>投诉建议</span>
</div>
  
  </div>

css部分:

<style>
/*
  这段div是用来定义手机运动的四个框的
*/
.floatDiv{
position:fixed;
width:100px;
height:60px;
background-color:yellow;
}
.mobileCooperateDialog{
top:0px;
left:0px;
}
.mobileleaveMsgDialog{
top:0px;
right:0px;
}
.mobilesaleLine{
bottom:0px;
left:0px;
}
.mobilecomplain{
bottom:0px;
right:0px;
}
</style>

重点在javascript代码:

<script language="javascript">

//获取浏览器屏幕的宽和高
var screenWidth = document.documentElement.clientWidth;
var screenHeight = document.documentElement.clientHeight;

/*

MoveableDiv这个是定义好的一个js对象

传入参数的含义如下:

name: 名称,没有也可以

jQueryObject:传入进来一个jQuery对象,代表了某个div盒子

x_location:距离浏览器左上方顶点的绝对定位x坐标

y_location:距离浏览器左上方顶点的绝对定位y坐标

xSpeed:x方向上的初始速度

ySpeed:y方向上的初始速度

*/
function MoveableDiv(name,jQueryObject,x_location,y_location,xSpeed,ySpeed){
this.name = name;
this.jQueryObject = jQueryObject;
this.x_location = x_location;
this.y_location = y_location;
this.xSpeed = xSpeed;
this.ySpeed = ySpeed;
}

MoveableDiv.prototype = {
constructor: MoveableDiv,

//下面的move方法定义的是盒子的运动,当触碰到边界的时候将速度方向相反即可
move:function(){
if( this.x_location>(screenWidth-$(this.jQueryObject).width()) || this.x_location<0 ){
this.xSpeed = -this.xSpeed;
}
if( this.y_location>(screenHeight-$(this.jQueryObject).height()) || this.y_location<0 ){
this.ySpeed = -this.ySpeed;
}
this.x_location+=this.xSpeed;
this.y_location+=this.ySpeed;
$(this.jQueryObject).css("left",this.x_location+"px");
$(this.jQueryObject).css("top",this.y_location+"px");
}
}

$(function(){
//新建四个对象,初始化赋值
var movediv1 = new MoveableDiv("movediv1",$('.mobileCooperateDialog'),0,0,5,5);
var movediv2 = new MoveableDiv("movediv1",$('.mobileleaveMsgDialog'),screenWidth-$(".mobileleaveMsgDialog").width(),0,5,5);
var movediv3 = new MoveableDiv("movediv1",$('.mobilesaleLine'),0,screenHeight-$(".mobilesaleLine").height(),5,5);
var movediv4 = new MoveableDiv("movediv1",$('.mobilecomplain'),screenWidth-$(".mobilecomplain").width(),screenHeight-$(".mobilecomplain").height(),5,5);

//设置一个定时器,让其运动
setInterval(function(){
movediv1.move();
movediv2.move();
movediv3.move();
movediv4.move();
},50)

})

</script>

使用js完成一个类似于小广告的功能,斜着运动,遇到边界弹回相关推荐

  1. 原生js实现一个连连看小游戏(一)

    前几天使用原生的js写了一个连连看小游戏,地址:连连看(js),基本功能都实现了,运行截图为: 根据游戏规则获取开发思路 创建棋盘格 生成随机不重复数字 映射到棋盘格 鼠标点击事件 寻路,无通路,则到 ...

  2. 教你前端如何用js写一个跑酷小游戏

    在线体验地址:http://summer.pkec.net/ 源码地址:https://gitee.com/ihope_top/juejin-summer 前言 不知不觉夏天又到了,提到夏天你们能想到 ...

  3. 使用js写一个播放语音提示的功能

    利用window自带的speechSynthesis编写一个播放语音提示的功能 之前利用百度的在线语音合成发现改不了其中的per属性,自己装了一下node包,发现cnpm引入的时候会与vue-admi ...

  4. java连连看小程序,用JS写一个连连看小程序

    思路 决定内容区域的大小和图片种类数量 图片应该放多少行,多少列.必须是偶数 整个区域应该是在图片外多围上一圈,也就是行数和列数都应该比图片的多1 放多少对图片,一对两张.注意对数不能超过所有图片总数 ...

  5. vue.js:利用vue.js做一个抽奖小游戏

    MVVM模式是什么:M=Model(模型),V=View(视图),VM= ViewModel(简写成MVVM) . 代码如下: 运行代码结果: 1.你没有中奖: 2.恭喜你,你中奖了: 转载于:htt ...

  6. 使用netty实现一个类似于微信的聊天功能

    1.maven依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</a ...

  7. 纯js封装一个无缝轮播

    下面的代码用纯js封装一个轮播组件.功能如下: 可上滑.下滑.左滑.右滑.无缝轮播. 移动端支持手势滑动. 可指定第一个显示的轮播图. 支持放置文字.图片和视频.带导航器. 导航器可自定义样式.若不想 ...

  8. HTML怎么编写可关闭广告,JS实现关闭小广告特效

    本文实例为大家分享了JS实现关闭小广告特效的具体代码,供大家参考,具体内容如下 知识点 1.获取元素 2.通过元素获取父元素 3.删除节点 4.设置元素隐藏 运行效果 直接删除 隐藏 代码 Title ...

  9. 利用HTML+css+js制作侧边栏小广告

    利用HTML+css+js制作小广告 1.页面效果 2.HTML代码 3.css代码(给广告位设置样式) 4.js代码 在这里插入图片描述

  10. 用p5.js实现一个小动画——故宫橘猫赏秋图

    用p5.js实现一个小动画--故宫橘猫赏秋图 互动媒体第二次作业要求我们手绘一幅动画,再用代码实现出动画.由于时间原因,手绘并没有画动画,而是以插画的形式画了一张,然后p5实现了动画. 这里先放效果图 ...

最新文章

  1. 计算机输入输出有哪几种控制方式,计算机输入/输出的方式有哪几种?
  2. xampp无法启动apache,提示terminating worker thread 0
  3. php spl_autoload_register() 函数
  4. 通过数组下标获取值都有哪些方法_通过面试题,让我们来了解Collection
  5. Android 使用URLConnection下载音频文件
  6. Pandas 文本数据方法 capitalize( ) lower( ) upper( )
  7. 《linux c编程指南》学习手记1
  8. 枚举的字符串表示形式
  9. myBatis-plus异常提示For input string: {0=null}
  10. php页面怎么改造mip,WordPress MIP 改造之 a 标签替换为 mip-link 跳转链接
  11. Golang1.71.3下载以及安装(Linux Mac Windows)
  12. Ajax用法返回Json
  13. 如何生成随机数(上)
  14. 手把手教你使用R语言做竞争风险模型并绘制列线图
  15. 测试cs架构的软件,基于UI的CS架构软件自动化测试方法及系统
  16. 配置node服务器并且链接微信公众号接口配置(超详细)
  17. JavaScript经典pdf书籍推荐
  18. Linux定时任务与开机自启动脚本
  19. 《2019全国互联网行业程序员就业报告》出炉,程序员平均月薪为1.8W
  20. IDEA 对单个的java class文件打成jar包

热门文章

  1. 【Mac OS 与 Win10/Win7 双系统忘记Windows开机密码】苹果电脑安装了双系统,忘记了Windows开机密码
  2. mpchart点击_在MPAndroidChart中,如何为Barchart中的每个Bar添加click事件?
  3. LQR,iLQR,DDP控制论经典算法(MBRL基础知识)
  4. 解二元一次方程组程序
  5. 【超详细】QQ空间说说爬取教程(看看你的女神在想什么~
  6. composite-id class must implement Serializable
  7. 95-后程序员一出校门就拿年薪-30多万?,2021Android面试笔试总结
  8. 声源级、接收电压灵敏度(接收带内响应)
  9. 建议平面设计爱好者要学的软件,和一些CDR常见问题
  10. 使用PhantomJS网页截图