700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 纯JavaScript实现的完美渐变弹出层效果代码【javascript】

纯JavaScript实现的完美渐变弹出层效果代码【javascript】

时间:2022-05-05 06:17:17

相关推荐

纯JavaScript实现的完美渐变弹出层效果代码【javascript】

web前端|js教程

完美渐变,弹出层

web前端-js教程

如题,本文将使用纯粹的脚本JavaScript实现渐变的弹出层,其想法也非常简单:利用IFrame实现遮盖,再借助一个DIV用于展现弹出层的内容,最后再使用其内置函数setInterval()和clearInterval()实现渐变,原理非常简单,只不过要注意对DOM对象/元素的精确控制。由于代码比较简单,在此就不再赘述。以下代码在IE6+,FF3.5+测试通过。

脚本Flyout.js:

vivi健康网源码,ubuntu传本地文件,tomcat软件打开网页,黑客做爬虫,php是什么教材,seo优化案例公司seo顾问lzw

// JScript File

if (navigator.userAgent.toLowerCase().indexOf(msie) > -1) {

window.isIE = true;

window.isIE6 = navigator.appVersion.indexOf("MSIE 6.0;") > -1;

window.isIE7 = navigator.appVersion.indexOf("MSIE 7.0;") > -1;

window.isIE8 = navigator.appVersion.indexOf("MSIE 8.0;") > -1;

}

var $ = function(objID) { return document.getElementById(objID) };

var _flyout;

var _fadeTimer;

function showflyout(divWidth, divHeight, paddingWidth) {

var flyout = function() {

}

flyout.prototype = {

clientWidth: document.documentElement.clientWidth,

clientHeight: document.documentElement.clientHeight,

scrollWidth: document.documentElement.scrollWidth,

scrollHeight: document.documentElement.scrollHeight,

iframeID: "envelopIframe",

divID: "popupcontent",

iframebgColor: "#888888",

show: function(divContent) {

//Create envelop iframe

cssText = "position:absolute; z-index:100; background-color:#888888; border-width:0px; filter:alpha(opacity=0); opacity:0.0;";

cssText += "left:0px;";

cssText += "top:0px;";

cssText += "width:" + this.scrollWidth + "px;";

cssText += "height:" + this.scrollHeight + "px;";

this.create("iframe", this.iframeID, cssText, "Cppl_IFrameSrc.htm", "");

_fadeTimer = setInterval(function() { fadeIframe("envelopIframe", 0.05, 0, 0.5, true) }, 5);

//Create flyout

var cssText = "";

cssText += "display:block; _position:absolute; position:fixed; z-index:101; border:solid 1px Gray; background-color:white;";

cssText += "left:" + (this.clientWidth - divWidth - paddingWidth) / 2 + "px;";

cssText += "top:" + (this.clientHeight - divHeight - paddingWidth) / 2 + "px;";

cssText += "width:" + (divWidth + paddingWidth) + "px;";

cssText += "height: " + (divHeight + paddingWidth) + "px;";

this.create("div", this.divID, cssText, "", divContent);

},

create: function(type, id, csstext, iframesrc, innerhtml) {

var obj = document.createElement(type);

if (iframesrc.length > 0) {

obj.src = iframesrc;

}

obj.setAttribute("id", id);

obj.style.cssText = csstext;

if (innerhtml.length > 0) {

obj.innerHTML = innerhtml;

}

document.body.appendChild(obj);

if (iframesrc.length > 0) {

if (window.isIE) {

window.envelopIframe.document.bgColor = this.iframebgColor;

}

}

},

close: function() {

var objIframe = document.getElementById(this.iframeID);

var objDiv = document.getElementById(this.divID);

if (objIframe && objDiv) {

document.body.removeChild(objIframe);

document.body.removeChild(objDiv);

}

},

onresize: function() {

var objIframe = document.getElementById(this.iframeID);

var objDiv = document.getElementById(this.divID);

if (objIframe && objDiv) {

objIframe.style.width = document.documentElement.scrollWidth + "px";

objIframe.style.height = document.documentElement.scrollHeight + "px";

objDiv.style.left = (document.documentElement.clientWidth - divWidth) / 2 + "px";

objDiv.style.top = (document.documentElement.clientHeight - divHeight) / 2 + "px";

}

},

onscroll: function() {

var objDiv = document.getElementById(this.divID);

if (objDiv) {

objDiv.style.left = (document.documentElement.clientWidth - divWidth) / 2 + document.documentElement.scrollLeft + "px";

objDiv.style.top = (document.documentElement.clientHeight - divHeight) / 2 + document.documentElement.scrollTop + "px";

}

}

};

_flyout = new flyout();

_flyout.show("This is a flyout.

Close Flyout

");

}

function closeflyout() {

clearInterval(_fadeTimer);

_fadeTimer = setInterval(function() { fadeIframe("envelopIframe", 0.05, 0, 0.5, false) }, 5);

}

window.onresize = function() {

if (_flyout) {

_flyout.onresize();

}

};

window.onscroll = function() {

if (_flyout && isIE6) {

_flyout.onscroll();

}

};

function fadeIframe(objId, speed, minOpacity, maxOpacity, flag) {

var dialog = $(objId);

if (dialog) {

var value;

if (flag) {

if (parseFloat(dialog.style.opacity) <= maxOpacity) {

value = parseFloat(dialog.style.opacity) + speed;

dialog.style.filter = alpha(opacity= + value * 100 + );

dialog.style.opacity = \ + value + \;

}

else {

clearInterval(_fadeTimer);

}

}

else {

if (parseFloat(dialog.style.opacity) >= minOpacity) {

value = parseFloat(dialog.style.opacity) - speed;

dialog.style.filter = alpha(opacity= + value * 100 + );

dialog.style.opacity = \ + value + \;

}

else {

clearInterval(_fadeTimer);

if (_flyout) {

_flyout.close();

}

}

}

}

}

调用ASPX代码:

易语言cmd窗口调用源码,vscode 的一些设置,ubuntu 服务收费,tomcat的项目端口,pyhthon爬虫框架,php毕业生简历,seo外包公司网络服务lzw

Flyout Sample

Click me to test

最终效果图:

p2p借贷平台源码 下载,用vscode编写一个网页,ubuntu cli,tomcat控制台攻击,json保存sqlite,关于网页设计的文案,域名备案必须有服务器吗,html文字火焰效果插件,前端框架不联网,黑魂2爬虫,php云空间,西安seo培训班,网站系统cms,网页音乐控制源码,ecshop模板修改,js点击按钮弹出小页面,文章管理系统 手机版,全部子程序 易语言lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。