JS实现网页飘窗
1.在html中设置一个飘窗的div,div中可以添加图片,添加文字通过css展现在飘窗中;
<!--飘窗-->
<div id="roll">
<img src="img/roll.jpg">
</div>
2.在css中对飘窗设置长宽,用postion进行定位;postion:fixed可以实现绝对定位,使图片始终处于可视窗口内
#roll {
height: 200px;
width: 200px;
position: fixed; /*fixed实现绝对定位*/
cursor:pointer;
}
#roll img{
height: 200px;
width: 200px; }
3.在JS中实现让飘窗实现漂浮的过程:
(1)获取飘窗id;
(2)设置飘窗速度,变化幅度,初始位置;
(3)使用documentElement获取可视化窗口的长宽,用可视化窗口的长宽分别减去飘窗的长宽即可得到飘窗可以移动的范围;
(4)令变化幅度的初始值为1;用statusX ?-1 :1(statusY ?-1 :1)来判断飘窗是否到达可视化窗口的左右(上下)边界,用this指针来完成图片每一次移动所改变的位置;
(5)最后用onmouseover和onmouseout来实现鼠标移动到飘窗上停止移动和移开鼠标飘窗继续运动;
4.JS具体实现代码
var ggRoll={ //创建对象直接量
roll:document.getElementById("roll"), //获取id属性为roll的对象
speed:20, //飘动速度,即为定时器函数多长时间执行一次
statusX:1, //规定每执行一次函数,left属性值变化的幅度
statusY:1, //规定每执行一次函数,top属性值变化的幅度
x:100, //规定初始状态下left属性的值
y:300, //规定初始状态下top属性的值
//差值用来测算left属性值的极限
winW:document.documentElement.clientWidth-document.getElementById("roll").offsetWidth,
//差值用来测算top属性值的极限
winH:document.documentElement.clientHeight-document.getElementById("roll").offsetHeight,
//声明函数
Go: function () {
//设置div的left属性值
this.roll.style.left = this.x + 'px';
//设置div的top属性值
this.roll.style.top = this.y + 'px';
//如果statusX=1则每次减少1px,否则减少1px
this.x = this.x + (this.statusX ? -1 : 1)
//如果left属性值小于0,也就是div要超出左边界了,就将statusX设置为0
if (this.x < 0) { this.statusX = 0 }
//如果top属性值大于winW,也就是div要超出右边界了,就将statusX设置为1
if (this.x > this.winW) { this.statusX = 1 } this.y = this.y + (this.statusY ? -1 : 1)
if (this.y < 0) { this.statusY = 0 }
if (this.y > this.winH) { this.statusY = 1 } }
}; var interval=setInterval("ggRoll.Go()",ggRoll.speed);
ggRoll.roll.οnmοuseοver=function(){clearInterval(interval)}; //onmouseover属性:鼠标移动到元素上时触发
ggRoll.roll.οnmοuseοut=function(){interval=setInterval("ggRoll.Go()",ggRoll.speed)};//onmouseout属性:鼠标离开元素时触发
JS实现网页飘窗的更多相关文章
- JS判断网页是否在微信中打开/
JS判断网页是否在微信中打开,代码如下: <script type="text/javascript"> function is_weixn(){ var ua = n ...
- [原创]纯JS实现网页中多选复选框checkbox和单选radio的美化效果
图片素材: 最终效果图: <html><title> 纯JS实现网页中多选复选框checkbox和单选radio的美化效果</title><head>& ...
- Ifvisible.js – 判断网页中的用户是闲置还是活动状态
ifvisible.js 是一个跨浏览器.轻量级的方式,用户检查用户在浏览页面或正在与它进行交互.它可以处理活动状态,如在页面上空闲或活跃.您还可以使用 ifvisible.js 智能设置您的间隔,如 ...
- 【软件编程】乐易贵宾VIP教程 - JS改写+网页操作系列教程
JS改写系列教程: 1.MD5加密改写教程(爱拍网登录)2.解密如何快速找到真确的js加密算法3.多重MD5加密改写教程(5173登录)4.DZ论坛登录加密改写5.唯品会手机登录加密改写6.新浪微博密 ...
- JS倒计时网页自动跳转代码
<title>JS倒计时网页自动跳转代码</title> <script language="JavaScript" type="text/ ...
- js实现网页防止被iframe框架嵌套及几种location.href的区别
首先我们了解一下几种location.href的区别简单的说:几种location.href的区别js实现网页被iframe框架功能,感兴趣的朋友可以了解下 首先我们了解一下:window.locat ...
- JS获取网页属性包括宽、高等
JS获取网页属性包括宽.高等. function getInfo() { // www.jbxue.com var s = ""; s += " 网页可见区域宽:&q ...
- JS获取网页宽高方法集合
JS获取网页宽高等方法的集合:document.body.clientWidth - 网页可见区域宽document.body.clientHeight - 网页可见区域高 document.body ...
- js技术要点---JS 获取网页源代码
JS 获取网页源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html& ...
随机推荐
- 使用discriminator实现鉴别器
1在人员接口实现方法 public Employee getEmpByIdStep(Integer id); 2在映射文件进行配置 <!-- public Employee getEmpById ...
- Lombok 注解简介
Lombok @AllArgsConstructor /** * 生成一个包含所有属性的构造函数 */ @Target(ElementType.TYPE) @Retention(RetentionPo ...
- 从 sourcemap 中获取源码
使用 paazmaya/shuji: Reverse engineering JavaScript and CSS sources from sourcemaps 可以从 sourcemap 中获取源 ...
- 2018.03.27 pandas concat 和 combin_first使用
# 连接和修补concat.combine_first 沿轴的堆叠连接 # 连接concatimport pandas as pdimport numpy as np s1 = pd.Series([ ...
- bug大致分类及如何定位
前端 一.概念:网站的静态页面设计,网站前端工作使用的是html.css.javascript等技术设计网站页面的样式和排版布局,这就是网站前端. 二.Bug类别 1.HTML:出现文本的问题基本都是 ...
- 操作系统 - Linux操作系统 - Centos - Centos7 - 安装|命令|使用汇总
镜像: http://mirrors.aliyun.com/centos/7/isos/x86_64/http://archive.kernel.org 网络配置 - DHCP # /etc/res ...
- 【Linux开发】【Qt开发】ARM QT移植详细步骤教程
ARM QT移植详细步骤教程 米尔SAM9X5和A5D3X上默认的Qt版本是4.5.3,当这个版本的Qt库不能满足实际开发需求时,可通过此方法制定Qt开发.运行环境. 移植的步骤如下: 1.下载新版q ...
- Kotlin-Note
数字在需要一个可空的引用时,会进行装箱操作,数字装箱不一定保留同一性. val a = 1000 println(a === a) // 输出 "true" val boxedA ...
- GCC 编译参数
-s 这个参数会把符号表从最终的可执行文件中删除.没有符号表,你就不能用gdb调试了,但是程序会更小 -O0 不做任何优化,这是默认的编译选项 -c 只编译不链接,产生.o文件,就是obj文件,不产生 ...
- 【转】centos7安装
转自:https://blog.csdn.net/qq_42570879/article/details/82853708 1.CentOS下载CentOS是免费版,推荐在官网上直接下载,网址:htt ...