背景暗一点,突出当前页面

技术与开发

我在淘宝网上注册时,无意中点击了右侧的雅虎邮箱链接,弹出一个注册界面同时将淘宝页面内容变暗了。我觉得这个很有趣,想应用到我的网页上,不知道该怎么做?

你是不是看到别人的网站和社区的亮点功能很心动?想把它们搬进自己的网站或社区中吗?你是不是在网上看到新奇或热门的新功能,想自己模仿设计一下?来我们的“网络模仿秀”瞧瞧,一定有你想要的!如果你有什么网络功能的需求,请写信给我们,投稿信箱:pcw-chendx@vip.sina.com。

要给自己的网页增加这个效果,非常容易。首先我们设计一个隐藏图层,然后把隐藏图层跟链接结合以来,当用户点击链接时,隐藏图层就显示并将网页后面内容变暗。这里我们要用到层内嵌框架技术,它具有弹出界面并突出显示功能,可以用在图片重点展示效果设计上。

第一步 设计隐藏图层

隐藏图层是该效果最主要的内容,我们要实现它,先要在已有的层中增加一个空白的框架,添加框架的代码请到http://www.cpcw.com/bzsoft下载。

第二步 控制隐藏图层

隐藏图层虽然有了,如果没有JavaScript命令,图层就无法显示,效果就等于零。因此我们需要在网页中<script>代码区添加相关代码,其中关键代码如下(完整代码下载地址http://www.cpcw.com/bzsoft)。

shade = new function() { /*新建一个Shade函数,当隐藏图层显示时,将网页后面变暗*/

var handle = {};

var shade;

handle.show = function() {

if (!shade) {

shade = document.createElement

('div'); /*新建一个Div元件*/

shade.className = 'tb-shade'; /*设置Shade区CSS为'tb-shade'*/

document.body.appendChild(shade);

with((document.compatMode=='CSS1 Compat')?document.documentElement:docu

ment.body) {

var ch = clientHeight, sh = scrollHeight;

shade.style.height = (sh > ch?sh : ch) + 'px';

shade.style.width = offsetWidth + 'px';

shade.style.display = 'block';

}

handle.hide = function() {

shade.style.display = 'none';

};

return handle;

function showPanel() { /*显示Panel函数*/

Shade.show();/* 执行Shade.show命令让背景变暗*/

document.getElementById('Panel').sty le.display = 'block'; /*这里的Panel应和隐藏图层内名称一致 */

document.getElementById('frame').src = "http://rgjy.net"; /*设置Frame的源,可自行修改,同时Frame名称要和隐藏图层内一致*/

document.getElementById('Panel').scr ollIntoView();

}

function hidePanel() { /*隐藏Panel函数 */

Shade.hide();/*执行Shade.hide命令,暗色消失*/

document.getElementById('Panel').sty le.display = 'none'; /*将隐藏图层CSS设置为不显示*/

第三步 使用CSS控制显示位置

隐藏图层能被控制了,接下来我们使用CSS代码来控制图层的显示位置及样式,在网页顶部区添加如下代码:

<STYLE>

.tb-shade {DISPLAY: none; Z-INDEX: 2007; FILTER: alpha(opacity=60); LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 0px; BACKGROUND-COLOR: #ccc; opacity: .6}/*Z-INDEX可自行修改,但必须比#Panel的值要小,Alpha控制显示透明度,可自行调整*/

#Panel { MARGIN-TOP: -260px; DISPLAY: none; Z-INDEX: 2008; LEFT: 50%; MARGIN-LEFT: -325px; WIDTH: 650px; POSITION: absolute; TOP: 50%; BACKGROUND-COLOR: #fff}/*设置隐藏层位置、宽度,可自行修改*/

</STYLE>

小知识:Z-INDEX是设置对象的层叠顺序的样式。该样式只对Position属性为Relative或Absolute的对象有效。这里的层叠顺序也可以说是对象的“上下顺序”。数字越大显示越靠前。

第四步 通过链接实现效果

这种效果是在用户点击链接后才激活的,因此最后还要把效果跟链接结合起来,在网页中需要点击的链接处添加如下代码:

<a href="#" onclick="showPanel(); return false;"><strong>代码测试</strong></a>/*链接上加上Onclick命令*/

总结

这种页面显示效果可以内嵌网页,减少页面占据的空间,增加网页可用性。此外,我们还可以利用这种方式内嵌图片,可以得到非常炫丽的图片显示效果。