js实现H5网页飘窗

这篇具有很好参考价值的文章主要介绍了js实现H5网页飘窗。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.<div style="z-index: 1000; position: absolute; filter: Alpha(opacity = 90); width: 100px;padding: 10px; border: 1px solid #333" id="img" align="center">
<a href="javascript:void(0);" id="popInfo" style="text-decoration: none;color:#333">关于xxx的通知</a>
</div>

 

js代码

 

<script>
$(function() {
var content = '<div style="margin-left: 20px;margin-right: 20px;"><center>关于xxx的通知</center><br/>'
+ '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;按照xxx要求,可按照如下方式进行:<br/>'
+ '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一、进行相关处理。<br/>'
+ '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;二、人员进行相关处理。<br/><br/>'
+ '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如有任何疑问,请联系相关客服人员<br/>'
+ '<br/>'
+ '<br/>'
+ '<p style="text-align: right;">xxx科技有限公司</p>'
+ '<p style="text-align: right;">x年10月1日</p></div>';

$('#popInfo').click(function() {
layer.open({
title : '通知',
type : 1,
area : [ '560px', '420px' ],
content : content
});
})
});

//关闭飘窗
function hidead() {
// document.getElementById("img1").style.display = "none";
document.getElementById("img").style.display = "none";
}

//飘窗开始
function addEvent(obj, evtType, func, cap) {
cap = cap || false;
if (obj.addEventListener) {
obj.addEventListener(evtType, func, cap);
return true;
} else if (obj.attachEvent) {
if (cap) {
obj.setCapture();
return true;
} else {
return obj.attachEvent("on" + evtType, func);
}
} else {
return false;
}
}
function getPageScroll() {
var xScroll, yScroll;
if (self.pageXOffset) {
xScroll = self.pageXOffset;
} else if (document.documentElement
&& document.documentElement.scrollLeft) {
xScroll = document.documentElement.scrollLeft;
} else if (document.body) {
xScroll = document.body.scrollLeft;
}
if (self.pageYOffset) {
yScroll = self.pageYOffset;
} else if (document.documentElement
&& document.documentElement.scrollTop) {
yScroll = document.documentElement.scrollTop;
} else if (document.body) {
yScroll = document.body.scrollTop;
}
arrayPageScroll = new Array(xScroll, yScroll);
return arrayPageScroll;
}
function GetPageSize() {
var xScroll, yScroll;
if (window.innerHeight && window.scrollMaxY) {
xScroll = document.body.scrollWidth;
yScroll = window.innerHeight + window.scrollMaxY;
} else if (document.body.scrollHeight > document.body.offsetHeight) {
xScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
} else {
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;
}
var windowWidth, windowHeight;
if (self.innerHeight) {
windowWidth = self.innerWidth;
windowHeight = self.innerHeight;
} else if (document.documentElement
&& document.documentElement.clientHeight) {
windowWidth = document.documentElement.clientWidth;
windowHeight = document.documentElement.clientHeight;
} else if (document.body) {
windowWidth = document.body.clientWidth;
windowHeight = document.body.clientHeight;
}
if (yScroll < windowHeight) {
pageHeight = windowHeight;
} else {
pageHeight = yScroll;
}
if (xScroll < windowWidth) {
pageWidth = windowWidth;
} else {
pageWidth = xScroll;
}
arrayPageSize = new Array(pageWidth, pageHeight, windowWidth,
windowHeight)
return arrayPageSize;
}
//AdMove
var AdMoveConfig = new Object();
AdMoveConfig.IsInitialized = false;
AdMoveConfig.ScrollX = 0;
AdMoveConfig.ScrollY = 0;
AdMoveConfig.MoveWidth = 0;
AdMoveConfig.MoveHeight = 0;
AdMoveConfig.Resize = function() {
var winsize = GetPageSize();
AdMoveConfig.MoveWidth = winsize[2];
AdMoveConfig.MoveHeight = winsize[3];
AdMoveConfig.Scroll();
}
AdMoveConfig.Scroll = function() {
var winscroll = getPageScroll();
AdMoveConfig.ScrollX = winscroll[0];
AdMoveConfig.ScrollY = winscroll[1];
}
addEvent(window, "resize", AdMoveConfig.Resize);
addEvent(window, "scroll", AdMoveConfig.Scroll);
function AdMove(id) {
if (!AdMoveConfig.IsInitialized) {
AdMoveConfig.Resize();
AdMoveConfig.IsInitialized = true;
}
var obj = document.getElementById(id);
obj.style.position = "absolute";
var W = AdMoveConfig.MoveWidth - obj.offsetWidth;
var H = AdMoveConfig.MoveHeight - obj.offsetHeight;
var x = W * Math.random(), y = H * Math.random();
var rad = (Math.random() + 1) * Math.PI / 6;
var kx = Math.sin(rad), ky = Math.cos(rad);
var dirx = (Math.random() < 0.5 ? 1 : -1), diry = (Math.random() < 0.5 ? 1 : -1);
var step = 1;
var interval;
this.SetLocation = function(vx, vy) {
x = vx;
y = vy;
}
this.SetDirection = function(vx, vy) {
dirx = vx;
diry = vy;
}
obj.CustomMethod = function() {
obj.style.left = (x + AdMoveConfig.ScrollX) + "px";
obj.style.top = (y + AdMoveConfig.ScrollY) + "px";
rad = (Math.random() + 1) * Math.PI / 6;
W = AdMoveConfig.MoveWidth - obj.offsetWidth;
H = AdMoveConfig.MoveHeight - obj.offsetHeight;
x = x + step * kx * dirx;
if (x < 0) {
dirx = 1;
x = 0;
kx = Math.sin(rad);
ky = Math.cos(rad);
}
if (x > W) {
dirx = -1;
x = W;
kx = Math.sin(rad);
ky = Math.cos(rad);
}
y = y + step * ky * diry;
if (y < 0) {
diry = 1;
y = 0;
kx = Math.sin(rad);
ky = Math.cos(rad);
}
if (y > H) {
diry = -1;
y = H;
kx = Math.sin(rad);
ky = Math.cos(rad);
}
}
this.Run = function() {
var delay = 25;//移动速度
interval = setInterval(obj.CustomMethod, delay);
obj.onmouseover = function() {
clearInterval(interval);
}
obj.onmouseout = function() {
interval = setInterval(obj.CustomMethod, delay);
}
}
}
var ad1 = new AdMove("img");
ad1.Run();
// var ad2 = new AdMove("img1");
// ad2.Run();
// ad2.SetLocation(50, 100)
// ad2.SetDirection(1, 1)
</script>文章来源地址https://www.toymoban.com/news/detail-427069.html

到了这里,关于js实现H5网页飘窗的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS3中z-index不生效怎么办?

    如果在 CSS3 中 z-index 属性不起作用,可能有以下几个原因和解决方案: 1、定位属性不正确:z-index 属性只对设置了定位属性(如 position: relative;、position: absolute; 或 position: fixed;)的元素生效。确保要设置 z-index 的元素具有正确的定位属性。 2、元素层级关系:z-index 属性只能

    2024年02月11日
    浏览(34)
  • 快速解决element ui的组件的版本z-index层级问题

    怎么快速解决 element ui 的组件的版本z-index层级问题 首先你要清楚, element ui 组件( select / dialog ) z-index 的层级从哪里来的。 你看源码就会知道,每次都会混入个 minxin:[Popper] 可以知道,他的层级是从这个 Popper 这里来的, 我们在写组件的时候,只需要获取他的Popper混入方法就

    2024年02月02日
    浏览(495)
  • 大鱼海棠国漫主题HTML前端网页设计成品预览与讲解DIV CSS JS

    国漫大鱼海棠主题,本套大作业共计10个页面,页面美观度较高,网页在细节设计上花了很大功夫,如边框、阴影,鼠标滑过效果等,运用的知识点有:Div+CSS、JS轮播图、Table、下拉菜单栏、视频、表单、二级页面,LOGO设计,基本期末作业所需的知识点都有覆盖~ 戳下方视频预

    2024年02月11日
    浏览(48)
  • Dreamweaver网页作业——紫罗兰永恒花园动漫价绍网页 7页,含有table表格,js表单验证还有首页视频。以及列表页。浮动布局。div+css+js

    HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐👇🏻👇🏻👇🏻 ❤ 【作者主页

    2024年02月03日
    浏览(39)
  • vue3使用ElementPlus的消息el-message样式不生效或者被遮盖(z-index)

    问题1:el-message自定义样式不生效 想改弹出框的位置时不生效,使用了el-message的自定义类的 custom-class 属性也不行。原因应该是加了scoped后使用到里面样式的dom会添加data-v-xxxx这种属性防止css污染,但是message生成的dom是没有添加data-v-xxx属性的,所以样式无效。 解决方式:j

    2024年02月08日
    浏览(41)
  • 前端html中让两个或者多个div在一行显示,用style给div加上css样式

    DIV是层叠样式表中的定位技术,全称DIVision,即为划分。有时可以称其为图层。DIV在编程中又叫做整除,即只得商的整数。 DIV元素是用来为HTML(标准通用标记语言下的一个应用)文档内大块(block-level)的内容提供结构和背景的元素。 我们知道,默认情况下每个div都是单独一

    2024年02月14日
    浏览(60)
  • CSS中position: fixed定位后div中内容不能滚动

    问题描述 div 设置定位后,内容不能滚动。 解决方案

    2024年02月06日
    浏览(32)
  • 前端结合xlsx.js+xlsx-style.js源码实现自定义excel文件导出

          js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls、xlsx、ods(一种OpenOffice专有表格文件格式)等十几种格式。本文全部都是以xlsx格式为例。 创建一个excel会经历以下过程: 创建一个工作薄 创建一个sheet 创建表格行列等

    2024年03月10日
    浏览(73)
  • JS创建DIV,实现鼠标拖拽效果

    题目:用原生js动态创建一个div,大小随意,挂在body上,实现鼠标拖拽效果 需要用到的鼠标事件: 1.鼠标按下(onmousedown), 2.鼠标移动(onmousemove) 3.鼠标抬起(onmouseup) 第一步:创建容器(每个页面,最大的容器是body对象,所有dom对象创建后默认都会放到body) 第二步,

    2024年02月13日
    浏览(49)
  • 已解决IndexError: positional indexers are out-of-bounds

    已解决IndexError: positional indexers are out-of-bounds 粉丝群里面的一个小伙伴遇到问题跑来私信我,想用pandas,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包