`
clfsw0201
  • 浏览: 41999 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

仿Lightbox效果(Windows关机效果),div覆盖,锁定页面及IE 6实现position:fixed;

    博客分类:
  • CSS
阅读更多

Lightbox效果,也可以叫Windows关机效果,最常见的用法就是页面上弹出一个css设置的提示或对话框,但在后面又覆盖了一个层,使网页的其他部分不可点击。

 

原理:

定义一个浮层,定位方式为fixed,高宽都为屏幕可见高宽,这样当页面长度很短或太长需要滚动页面时,这个覆盖层就可以一直覆盖在浏览器整个可见区域,同样原理需要用户进行交互的高亮层也是这个效果。这里面一般要用到的效果有:

  1. 定义浮层的宽高
  2. 层的半透明效果
  3. 为实现兼容,IE 6中实现fixed效果
  4. 高亮层居中

1、设置浮层宽高

只要将浮层的css样式的宽高设置成100%就可以了(fixed实现前,IE 6没效果)。

 

之所以在这里提出来是因为自己之前错误的以为定义position为absolute,然后设置这个浮层足够大,大到覆盖整个html,这时可以用

 

divObj.style.width = Math.max(document.documentElement.scrollWidth, 
                                 document.documentElement.clientWidth);
divObj.style.height = Math.max(document.documentElement.scrollHeight, 
                                 document.documentElement.clientHeight); 

 

来获得页面文档的宽高,如果页面较小不够一屏,就得到可见区域大小,这样做在FF和IE 7下正常,但IE 6宽高都会多出一个滚动条的宽度来,需要再减去这个尺寸。另外这样做在改变窗口大小时,浮层大小不会变,这样就又会出问题了,因此,只能用定义position为fixed的方式。

如果被覆盖的页面原可见部分包含<select/>,那么它会“透”出来,这时一种方法是调用浮层时隐藏<select/>,另一种方法就是再设一个<iframe/>作为浮层覆盖<select/>,它就不会透出来了。

2、设置层的半透明

这个没什么特别的,只要区分IE就行了:

opacity:.4;/*非IE*/

filter:alpha(opacity=40);/*IE*/

3、IE 6实现fixed效果

fixed是相对于html标记来定位的 ,因此要实现fixed定位,就要将html设置为一屏大小,而body则填充满html即可(滚动条是body的滚动条,页面滚动滚动的是body),超高时会自动出现滚动条。在IE 6下如果定义

 

<!--[if lt IE 7]>
<style type="text/css">
html{overflow:hidden;}/*定义html为一屏大小,超出则hidden*/

/*body必须定义overflow:auto;否则不出现滚动条
   如果不定义高度,浮层的高度也无从定义
   另外,body还要去除margin,否则滚动条不在最右边,一般在定义css初就应设置这个属性*/
body{overflow:auto;height:100%;}

/*对IE 6要设置成绝对定位,如果设置right的话,注意右边界是包括滚动条的,试一下right:0;就看出来了*/
.fixed{position:absolute;}
</style>
<![endif]-->

 

上面说的是纯css实现这种效果,也可以用js替代,最常用的就是在css里面应用expression来引用js代码,但我测试着效果不是很理想,尤其是这种整屏覆盖的图层,滚动时,下面明显晃动一条白线。

4、层居中

一般页面居中的方式在IE下是设置父级层text-align:center;,对于非IE用margin:0 auto;(别忘了定义宽度),但如果层定义了position:absolute;,那这种居中就不管用了。

 

<style type="text/css">
<!--
.box{width:300px;height:230px;background-color:#fff;
         position:absolute;top:50%;left:50%;
         margin:-115px 0 0 -150px;}
-->
</style>

 

上面这种方法是先让层左上角的那一点居中,然后在通过负的margin值让层的中心基本居中。如果页面已经向下滚动了一些,那么垂直方向上这么做就无法居中了,只能计算top的尺寸了。

 

 

 

 

2
1
分享到:
评论

相关推荐

    美化js系统函数alert,confirm,prompt,并实现lightbox效果

    使用CSS3的`position: fixed`可以让Lightbox覆盖整个页面。 3. **JavaScript交互**:监听小图的点击事件,当点击发生时,显示Lightbox并加载大图。同时,为Lightbox的关闭按钮和背景添加点击事件,以便用户可以关闭...

    纯CSS3实现的Lightbox弹出框动画效果源码.zip

    Lightbox是一种网页设计中常用的图片预览技术,它在用户点击某个链接或图像时,会在当前页面上弹出一个半透明的窗口,显示大图及其相关信息。这种效果常常用于图片展示、画廊或者多媒体内容的预览。在这个案例中,...

    jQuery实现的简单带有关闭按钮的lightbox高亮图片展示效果.zip

    要实现Lightbox的高亮效果,我们需要设置图片的CSS样式,如`position: fixed`使其固定在屏幕中央,`z-index`控制其层级,以及`transform`和`transition`来实现平滑的放大动画。 7. 图片加载优化: 为了避免延迟...

    lightbox弹出窗口背景变灰代

    Lightbox是一种网页设计技术,它允许用户在当前页面上打开一个半透明的模态窗口,通常用于展示图片、视频或任何其他内容,而不会让用户离开主页面。这种设计手法能够提供一种沉浸式的用户体验,使焦点集中在打开的...

    jquery实现图片弹出窗口特效,类似lightbox效果.rar

    本资源“jquery实现图片弹出窗口特效,类似lightbox效果.rar”是关于利用jQuery创建一个图片预览功能,类似于知名的Lightbox插件的效果。Lightbox是一种流行的技术,当用户点击网页上的图片链接时,图片会在一个半...

    纯CSS实现的lightbox风格的高亮弹出框效果.zip

    这可以通过设置一个全屏div的`position: fixed;`(固定定位)、`z-index: lower than lightbox;`(层叠顺序低于Lightbox)和适当的透明度来实现。 3. **Lightbox内容**:Lightbox本身通常具有较高的`z-index`,使其...

    CSS3 Lightbox缩略图效果.zip

    Lightbox是一种常见的网页设计技术,它允许用户在点击图像缩略图后,在当前页面上以全屏或半透明背景的形式查看大图,提供了一种优雅的方式来展示多媒体内容。 首先,我们从HTML5的基础结构开始。一个基本的...

    css3半透明遮罩背景lightbox图片展示特效

    position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); /* 这里的最后一个数字代表透明度 */ z-index: 999; } ``` 这里的`rgba()`函数用于设置带有透明度的...

    lightbox视频弹窗

    2. CSS样式:定义Lightbox和遮罩层的样式,确保它们在页面上正确显示并具有合适的交互效果。 ```css .lightbox-video { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%...

    lightbox弹出窗口背景变灰代码

    下面将详细解释如何实现这种“lightbox弹出窗口背景变灰”的效果。 首先,我们需要理解实现这个功能的关键元素: 1. **HTML 结构**:HTML 是页面的基础,我们需要创建一个或多个图像元素,当用户点击这些元素时...

    jQ图片Lightbox灯箱.zip

    《使用jQuery实现图片Lightbox灯箱效果》 在网页设计中,经常需要展示大量的图片,为了提供更好的用户体验,我们通常会使用Lightbox效果。Lightbox是一种流行的技术,它允许用户在点击图片预览链接后,图片会在当前...

    CSS鼠标经过放大图片+Lightbox图片展示

    position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); z-index: 9999; } ``` 在这个例子中,我们为图片链接添加了`data-lightbox`属性,然后通过CSS隐藏了大图...

    jQuery手机端Lightbox图片展示.zip

    $('&lt;div class="lightbox-overlay"&gt;&lt;/div&gt;&lt;div class="lightbox-content"&gt;&lt;img src="' + imgSrc + '"&gt;&lt;/div&gt;').appendTo('body'); $('.lightbox-overlay').fadeIn(); }); $('.lightbox-overlay').on('click', ...

    lightbox:一个使用 HTML、CSS 和 jQuery 的简单灯箱

    灯箱有属性position: fixed; , top: 0; , left: 0; , width: 100% , and height: 100%保证div覆盖整个窗口 图像显示在灯箱内是为了 a) 将观众的眼睛吸引到图像 b) 促进清晰的展示 灯箱 div 初始化为display: none ...

    css-lightbox:仅使用CSS制作的简单灯箱效果

    这种技术通常用于网站上,当用户点击缩略图时,大图会在当前页面上以全屏或半屏的方式弹出,提供更好的视觉体验。下面将详细介绍如何仅使用CSS创建这样的灯箱效果。 ### 1. HTML结构 首先,我们需要建立一个基本的...

    css3半透明遮罩lightbox效果特效代码

    同时,通过合理的布局和定位(如使用`position: fixed`使遮罩层始终覆盖整个视口),确保Lightbox在页面滚动时依然可见。 在实际应用中,这些CSS3特性通常与JavaScript结合使用,以响应用户的交互行为,如点击事件...

    jquery点击图片全屏效果

    Lightbox特效就是这种效果的典型代表,它通常包括图片预加载、缩略图导航、左右切换以及关闭按钮等元素。 jQuery是一个轻量级、高性能的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互。在实现...

    图片放大例子.rar

    在网页设计中,图片放大是一种常见的视觉效果,用于提升用户体验,尤其在电商网站如京东商城中,用户通常希望查看商品的细节。本示例“图片放大例子.rar”提供了一个使用CSS实现图片放大的方法,旨在帮助开发者理解...

Global site tag (gtag.js) - Google Analytics