js实现居中延迟广告弹框

AppLovin 试玩广告横竖屏自适应:3种CSS/JS方案与真机测试要点 本文详细介绍了AppLovin试玩广告横竖屏自适应的3种实战方案,包括CSS媒体查询、JS视口控制和Canvas动态缩放,并提供了真机测试要点与兼容性处理建议。特别针对MRAID环境和base64内嵌资源限制,帮助开发者优化广告性能,确保横竖屏切换流畅,提升用户体验和转化效果。 阅读详情
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
		*{padding: 0;margin: 0;}
        #box1{width: 300px;height: 155px;position: absolute;right: 50%;top: 50%;margin-right:-150px;border:1px solid #528FCC;display: none;
        }
        #span1{
            display: block;height: 25px;background: url("./img/acc_t_bg.gif" ) repeat-x;width: 100%;font-size: 12px;text-indent: 2em;line-height: 25px;
        }
        .kefu_btn{
            background:url("./img/ivt_bg.gif") no-repeat top left;
            width: 300px;
            height: 130px;
        }
        .kefu_btn button{
            cursor: pointer;
            font-size: 12px;
            width: 80px;
            height: 22px;
            border: none;
            position: absolute;
            bottom: 20px;
            right: 10px;
        }
        .bt1{
            background: url("./img/ivt_but1_cn.gif");
            right: 100px!important;
        }
        .bt2{
            background: url("./img/ivt_but2_cn.gif");
        }
        .kefu_btn p{
            width: 140px;
            position: absolute;
            bottom: 60px;
            right: 10px;
            font-size: 12px;
            color: #528FCC;
        }
		</style>
	</head>
	<body>
	
	<div id="box1" onselectstart="return false">
	   <span id="span1">上海网络科技</span>
       <div class="kefu_btn">
           <p>您好,有什么能够帮助您的么?</p>
           <button class="bt1"></button>
           <button class="bt2"></button>
       </div>	
	</div>
    <p id="pp1">上课不要睡觉,好好学习</p>
        </body>

    <script type="text/javascript">
    var timer=null;
function startMove(obj,json,fn){
	      clearInterval(timer);
	      timer =setInterval(function(){
	            var flag=true;           //假设全部为真
	            for(let attr in json){   //遍历对象
	            if(attr =="opacity"){
	            var cur1 =parseInt(getStyle(obj,"opacity")*100)
	            }else{
	            var cur1 =parseInt(getStyle(obj,attr));
	              }
	                
	                target1=json[attr];
	                speed= (target1-cur1)/6;  //减速运动
	                var speed=speed>0?Math.ceil(speed):Math.floor(speed);    //判断speed的正负值
	                if(attr == "opacity"){
				obj.style.opacity = (cur1+speed)/100;
				obj.style.filter = "alpha(opacity="+(cur1+speed)+")";
			}else{
	                obj.style[attr]=cur1+speed+"px"; 
	                }
	                //console.log(cur1)
	                if(target1!=cur1){   //判断若有一处未完成 ,flag为假
	                    flag=false;
	                }
	              }
	                if(flag){
	                clearInterval(timer); 
	                if(fn){
	                      fn();
	                        }
	                }
	                
	      },30)
	     
}
function getStyle(obj,attr){
 	if(obj.currentStyle){      //支持IE
 		return obj.currentStyle[attr]
 	}else{                   //不支持IE
 		return getComputedStyle(obj,null)[attr]
 	}
 }



	var Pp1 =document.getElementById("pp1");
	for(let i=0;i<=40;i++){
	     var p1= Pp1.cloneNode();
	        var text1 =document.createTextNode("上课不要睡觉,好好学习");
	        p1.appendChild(text1);
	        document.body.appendChild(p1)
	}
	
	
	  var oSpan=document.getElementById("span1");
      var oBox =document.getElementById("box1");
      setTimeout(function(){
        oBox.style.display="block";
      },3000)

      var oBtn1 =document.getElementsByClassName("bt1")[0];
      var oBtn2 =document.getElementsByClassName("bt2")[0];

	   window.onscroll=function(){
	   var Scroll =document.documentElement.scrollTop||document.body.scrollTop;
	            var cH=document.documentElement.clientHeight;
	            var tag=Math.floor((cH-oBox.offsetHeight)/2)+Scroll;
	            startMove(oBox,{top:tag});
               }
               oBtn2.onclick=function(){
                oBox.style.display="none";
               }
               oBtn1.onclick=function(){
                oBox.style.display="none";
               }
	</script>

</html>

图片:

效果如图:

 

 

微信小游戏Banner广告精准定位与收益优化实战指南 在移动应用和小游戏开发中,广告变现是开发者实现商业价值的重要途径。其核心原理在于通过SDK接入广告平台,在应用界面中展示广告,并根据曝光或点击行为获得收益。这项技术的价值在于为开发者提供了可持续的收入来源,同时平衡了用户体验。在微信小游戏生态中,Banner广告作为一种常驻型广告形式,因其持续曝光和较低的用户干扰度,成为稳定收益的关键。然而,实现精准定位和高效展示面临诸多挑战,例如安全区域适配、生命周期管理和性能优化。本文聚焦于微信小游戏Banner广告的实战接入,深入剖析了广告组件的生命周期控制、动态适配 阅读详情

相关推荐

JavaScript技巧:实现居中弹出窗口

showPopup()函数用于显示弹出窗口,它通过获取"popupContainer"元素的引用,并将其样式的"display"属性设置为"block",从而使弹出窗口可见。hidePopup()函数用于隐藏弹出窗口,它将"display"属性设置为"none",使弹出窗口不可见。在上述代码中,我们定义了一个名为"popupContainer"的DIV元素,它表示弹出窗口的容器。现在,当用户点击"显示弹出窗口"按钮时,弹出窗口将居中显示在页面中。当用户点击弹出窗口中的"关闭"按钮时,弹出窗口将被隐藏。

TechNovaX的博客 839

javascript实战——弹窗居中

javascript实战——弹窗居中思路:1 为了弹出时不影响整体布局,定位采用absolute;2 弹出时,出现遮罩,将这遮罩层的层次z-index低于弹窗;3 弹窗居中,让其top等于(整个可见屏幕高-弹窗高)/2,left等于(整个屏幕宽-弹窗宽)/2即:top=(ocument.documentElement.clientHeight-offsetHeight)/2+'px';      ...

shaonian1996 1270

微信姓氏头像框小程序源码:复古/酷炫/清纯多风格模板,支持短语自由搭配+流量主广告接入

一套可直接上手的微信姓氏头像框小程序源码,内置复古、酷炫、清纯等多套视觉模板,用户输入姓氏再配上离职语、祝福语或个性签名等短语,就能一键生成专属头像框。不用买服务器、不用备案域名,用微信开发者工具导入就能调试运行;压缩包里已配好微信平台认可的合法域名清单,按文档提示简单配置即可提交审核。源码经过实际修复,解决了旧版卡在验证页无法出图的问题,现在能稳定跳过验证直接生成图片。功能模块分工明确:we-cropper负责头像裁剪,upload.js处理图片上传,index页面承载核心交互,fenleib等文件夹管理

gin88的博客 262

JavaScript alert延迟弹出

直接上代码,时间加不加 " "都不影响,注意输出内容与输出变量格式的区别 &lt;script&gt; // 直接输出内容, 时间是毫秒,1000毫秒=1秒 window.setTimeout("alert('我等会出来')",10000); // 输出变量 var a = "你好"; window.setTimeout(...

雷蒙的博客 5002

JS中间浮动广告(可手动、自动关闭)

之前一直找屏幕中间的JS广告浮动代码,没找到,索性自己改了一个,在屏幕中间浮动,可以手动关闭,也会自动关闭。 这个用途也比较广泛,图片,文字,视频都可以。 有什么不合适的可以自己调。

网页上的点击弹出层代码,居中显示

网页上的点击弹出层代码,居中显示 点击弹出居中的遮罩层代码

JS -------------------设置弹出框位置屏幕的中间

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33921089的博客 3387

随鼠标漂移的广告展示.rar

随鼠标漂移的广告展示

杨校老师课堂之JavaScript右下角广告弹框教程

案例制作思路:   1、先制作界面     添加一个盒子包含一个按钮,使盒子绝对定位在右上角     添加一个大盒子,同理,将盒子居于左下角;其中内部包含一个顶端盒子和底部盒子             顶端盒子因为是属于大盒子内部的存在,所以宽度是占满整个大盒子的宽度,内部文本设置字体12号、居中显示、加粗            底部盒子因为也是属于大盒...

weixin_33724659的博客 194

js 居中漂浮广告

整个实现最重要的就是控制广告距离文档(非窗口)最顶部的距离.(scrollTop + browser.clientHeight).这里提供了获取这几个值的代码.

从零搭建A股量化交易系统:开源框架选型与实战部署指南

本文详细介绍了从零搭建A股量化交易系统的完整流程,重点分析了开源框架VNPY和QMT的选型与实战部署。内容涵盖系统架构设计、策略开发、性能优化及实盘过渡方案,为开发者提供了一套完整的A股实盘量化交易解决方案,助力高效构建稳定可靠的量化交易系统。

sugar的博客 1268

微信小程序自定义开屏广告

我查阅了许多关于开屏广告的资料,但网上没有找到现成的代码。虽然微信提供了流量主广告组件来实现开屏广告的功能,但由于项目需求,我希望能够自己控制广告内容,而不是依赖微信的流量主。因此,我打算自己编写开屏广告代码,以下是详细的步骤。

weixin_64801028的博客 1558

别再傻傻分不清PBR和NPR了!从《原神》到《双城之战》,聊聊游戏里那些让你眼前一亮的渲染风格

本文深入解析了PBR(基于物理的渲染)与NPR(非真实感渲染)在游戏视觉风格中的应用差异,通过《原神》和《双城之战》的案例,展示了两种渲染技术如何创造出截然不同的艺术效果。从技术原理到实战案例,帮助读者理解如何根据项目需求选择合适的渲染风格。

weixin_30425949的博客 145

纯JS实现图片预览与等比例缩放和居中

  最近做项目时有一个需求,广告位图片上传时要预览,并且要等比例缩放和居中。已经保存的广告位图片显示时也要等比例缩放和居中。我使用了下面的代码实现,不过可能有一些小问题。 1 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt...

weixin_34168880的博客 267

本地如何安装midscene.js运行环境

手把手教你本地安装midscene.js运行环境

实践助梦想成长 2607

瑞芯微RK3588/RK3576平台采集BT1120(fpga)驱动调试记录

本文介绍了在RK3576/RK3588平台上采集FPGA传输的BT1120数据的方法。主要内容包括:1)硬件连接需确认管脚复用和图像格式(通常为uyvy_2x8);2)设备树配置要点,如I2C总线设置、BT1120模式指定等;3)驱动适配注意事项,包括时钟极性、分辨率格式等关键参数;4)测试方法,通过media-ctl和v4l2-ctl工具验证数据采集。文中特别指出RK3576和RK3588配置的通用性,并提供了常见问题的排查思路。

bingdund的博客 913

Cordova AdMob Pro开发者指南:深入理解AdMob.js的API设计与实现

想要为你的Cordova混合应用实现移动广告变现吗?Cordova AdMob Pro插件正是你需要的解决方案!这个强大的插件让你只需一行JavaScript代码就能轻松集成Google AdMob广告,支持横幅广告、插页广告和激励视频广告,帮助开发者快速实现应用变现。作为Cordova社区最受欢迎的广告变现插件,它已被下载超过12万次,是移动应用开发的必备工具。 ## 📱 为什么选择Cord

gitblog_00550的博客 472

TriCore架构-基于TC397的启动流程

TC397芯片的启动流程分为三个关键阶段:固件启动(BootFirmware)、Bootloader引导和应用程序启动。BootFirmware作为硬件信任根,包含SSW基础初始化、CHSW自检和BSL应急刷写通道。Bootloader承担安全验证和程序引导功能,支持双分区(AB-SWAP)和双引导方案(PBL/SBL)。安全启动通过校验机制确保软件完整性,提供三种可选技术方案。应用程序启动阶段实现软件双分区管理,支持SOTA更新。整个流程体现了汽车电子系统的安全设计理念,通过硬件级保护与软件验证相结合确保

xiandang8023的博客 987

Cordova AdMob Pro与Ionic/PhoneGap兼容性详解:跨平台广告集成最佳实践

想要在Ionic或PhoneGap应用中轻松集成Google广告吗?cordova-admob-pro插件为您的跨平台移动应用提供了终极的广告变现解决方案。这款强大的Cordova插件让您只需一行JavaScript代码就能在iOS和Android应用中显示AdMob广告,完美兼容Ionic、PhoneGap等多种混合应用框架。 ## 📱 为什么选择cordova-admob-pro插件?

gitblog_00521的博客 726

OpenAI Function Calling 实战:让 Agent 自动调用外部 API 接口

在 2023 年 6 月之前,大语言模型(LLM)的能力边界是清晰的:它能说会道,能写诗作赋,也能帮你润色文案。但如果你问它"北京现在天气怎么样",它要么答不上来,要么基于过时的训练数据给你一个错误答案。原因很简单——LLM 的训练数据是有截止日期的,它活在"过去"。2023 年 6 月,OpenAI 在 GPT-4 的更新中引入了 Function Calling 功能,彻底改变了这一局面。Function Calling(也叫 Tool Use 或工具调用)是一种让 LLM 与外部系统交互的机制。

2201_76125393的博客 85

微信小程序 - 最新详细实现调起手机摄像头拍摄身份证人像面和国徽面取景框功能,在拍照相机上增加身份证证件照的轮廓或自定义文字,支持替换扫描拍摄辅助线图片及文本,小程序实现拍照身份证时带取景轮廓框拍摄!

微信小程序,身份证,证件照,人像,证件照提示框模板,vue身份证拍照框,摄像机相机里有引导内容,取景框拍摄,微信小程序实现拍照界面自定义实现,自拍人相框拍摄,取景框,户口簿取景框,画布指定区域生成图片,微信小程序身份证正反面拍照如何加入辅助图片引导照片,身份证取景框拍摄,服务器,上传,正反面,调起手机摄像头: 拍摄身份证的正反面,自定义身份证取景框,在相机上绘制 “身份证轮廓“ 与提示文字,拍摄身份证时出现人像框怎么实现,在相机上增加图片和文字,微信小程序怎么给调起的相机加入自定义图片,小程序实现给相机上面

🏆 前端领域优质创作者 3403
上一篇: js实现数组简单复制·并追加到后方
下一篇: base64、md5 、sha1 加密使用方法前端加密
岁月如歌_
博客等级 码龄8年 342粉丝 315原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值