`
cloudgamer
  • 浏览: 61053 次
  • 性别: Icon_minigender_1
  • 来自: 顺德
社区版块
存档分类
最新评论

JavaScript 仿LightBox内容显示效果

阅读更多

近来要做一个LightBox的效果(也有的叫Windows关机效果),不过不用那么复杂,能显示一个内容框就行了。
这个效果很久以前就做过,无非就是一个覆盖全屏的层,加一个内容显示的层。不过showbo教了我position:fixed这个新特性,决定重写一遍。

先看效果:

<script type="text/javascript"><!-- var isIE = (document.all) ? true : false; var isIE6 = isIE && ([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1] == 6); var $$ = function (id) { return "string" == typeof id ? document.getElementById(id) : id; }; var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } } } var Extend = function(destination, source) { for (var property in source) { destination[property] = source[property]; } } var Bind = function(object, fun) { return function() { return fun.apply(object, arguments); } } var Each = function(list, fun){ for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); } }; var Contains = function(a, b){ return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16); } var OverLay = Class.create(); OverLay.prototype = { initialize: function(options) { this.SetOptions(options); this.Lay = $$(this.options.Lay) || document.body.insertBefore(document.createElement("div"), document.body.childNodes[0]); this.Color = this.options.Color; this.Opacity = parseInt(this.options.Opacity); this.zIndex = parseInt(this.options.zIndex); with(this.Lay.style){ display = "none"; zIndex = this.zIndex; left = top = 0; position = "fixed"; width = height = "100%"; } if(isIE6){ this.Lay.style.position = "absolute"; //ie6设置覆盖层大小程序 this._resize = Bind(this, function(){ this.Lay.style.width = Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth) + "px"; this.Lay.style.height = Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + "px"; }); //遮盖select this.Lay.innerHTML = '<iframe style="position:absolute;top:0;left:0;width:100%;height:100%;filter:alpha(opacity=0);"></iframe>' } }, //设置默认属性 SetOptions: function(options) { this.options = {//默认值 Lay: null,//覆盖层对象 Color: "#fff",//背景色 Opacity: 50,//透明度(0-100) zIndex: 1000//层叠顺序 }; Extend(this.options, options || {}); }, //显示 Show: function() { //兼容ie6 if(isIE6){ this._resize(); window.attachEvent("onresize", this._resize); } //设置样式 with(this.Lay.style){ //设置透明度 isIE ? filter = "alpha(opacity:" + this.Opacity + ")" : opacity = this.Opacity / 100; backgroundColor = this.Color; display = "block"; } }, //关闭 Close: function() { this.Lay.style.display = "none"; if(isIE6){ window.detachEvent("onresize", this._resize); } } }; var LightBox = Class.create(); LightBox.prototype = { initialize: function(box, options) { this.Box = $$(box);//显示层 this.OverLay = new OverLay(options);//覆盖层 this.SetOptions(options); this.Fixed = !!this.options.Fixed; this.Over = !!this.options.Over; this.Center = !!this.options.Center; this.onShow = this.options.onShow; this.Box.style.zIndex = this.OverLay.zIndex + 1; this.Box.style.display = "none"; //兼容ie6用的属性 if(isIE6){ this._top = this._left = 0; this._select = []; this._fixed = Bind(this, function(){ this.Center ? this.SetCenter() : this.SetFixed(); }); } }, //设置默认属性 SetOptions: function(options) { this.options = {//默认值 Over: true,//是否显示覆盖层 Fixed: false,//是否固定定位 Center: false,//是否居中 onShow: function(){}//显示时执行 }; Extend(this.options, options || {}); }, //兼容ie6的固定定位程序 SetFixed: function(){ this.Box.style.top = document.documentElement.scrollTop - this._top + this.Box.offsetTop + "px"; this.Box.style.left = document.documentElement.scrollLeft - this._left + this.Box.offsetLeft + "px"; this._top = document.documentElement.scrollTop; this._left = document.documentElement.scrollLeft; }, //兼容ie6的居中定位程序 SetCenter: function(){ this.Box.style.marginTop = document.documentElement.scrollTop - this.Box.offsetHeight / 2 + "px"; this.Box.style.marginLeft = document.documentElement.scrollLeft - this.Box.offsetWidth / 2 + "px"; }, //显示 Show: function(options) { //固定定位 this.Box.style.position = this.Fixed && !isIE6 ? "fixed" : "absolute"; //覆盖层 this.Over && this.OverLay.Show(); this.Box.style.display = "block"; //居中 if(this.Center){ this.Box.style.top = this.Box.style.left = "50%"; //设置margin if(this.Fixed){ this.Box.style.marginTop = - this.Box.offsetHeight / 2 + "px"; this.Box.style.marginLeft = - this.Box.offsetWidth / 2 + "px"; }else{ this.SetCenter(); } } //兼容ie6 if(isIE6){ if(!this.Over){ //没有覆盖层ie6需要把不在Box上的select隐藏 this._select.length = 0; Each(document.getElementsByTagName("select"), Bind(this, function(o){ if(!Contains(this.Box, o)){ o.style.visibility = "hidden"; this._select.push(o); } })) } //设置显示位置 this.Center ? this.SetCenter() : this.Fixed && this.SetFixed(); //设置定位 this.Fixed && window.attachEvent("onscroll", this._fixed); } this.onShow(); }, //关闭 Close: function() { this.Box.style.display = "none"; this.OverLay.Close(); if(isIE6){ window.detachEvent("onscroll", this._fixed); Each(this._select, function(o){ o.style.visibility = "visible"; }); } } }; // --></script><style><!-- .lightbox{width:300px;background:#FFFFFF;border:1px solid #ccc;line-height:25px; top:20%; left:20%;} .lightbox dt{background:#f4f4f4; padding:5px;} --></style>

LightBox
内容显示





覆盖select测试<script type="text/javascript"><!-- var box = new LightBox("idBox"); $$("idBoxCancel").onclick = function(){ box.Close(); } $$("idBoxOpen").onclick = function(){ box.Show(); } $$("btnOverlay").onclick = function(){ box.Close(); if(box.Over){ box.Over = false; this.value = "打开覆盖层"; } else { box.Over = true; this.value = "关闭覆盖层"; } } $$("btnOverColor").onclick = function(){ box.Close(); box.Over = true; if(box.OverLay.Color == "#fff"){ box.OverLay.Color = "#000"; this.value = "白色覆盖层"; } else { box.OverLay.Color = "#fff" this.value = "黑色覆盖层"; } } $$("btnOverOpacity").onclick = function(){ box.Close(); box.Over = true; if(box.OverLay.Opacity == 0){ box.OverLay.Opacity = 50; this.value = "全透覆盖层"; } else { box.OverLay.Opacity = 0; this.value = "半透覆盖层"; } } $$("btnFixed").onclick = function(){ box.Close(); if(box.Fixed){ box.Fixed = false; this.value = "定位效果"; } else { box.Fixed = true; this.value = "取消定位"; } } $$("btnCenter").onclick = function(){ box.Close(); if(box.Center){ box.Center = false; box.Box.style.left = box.Box.style.top = "20%"; box.Box.style.marginTop = box.Box.style.marginLeft = "0"; this.value = "居中效果"; } else { box.Center = true; this.value = "重新定位"; } } // --></script>

ps:“定位效果”的意思是屏幕滚动也能固定位置。

程序说明:

要实现一个简单的LightBox效果,主要有两个部分:覆盖层和高亮层。


【跨浏览器的固定定位】

首先要先说说这个东西position:fixed,它的作用是跨浏览器的固定定位。

摘自详解定位与定位应用
“如让一个元素可能随着网页的滚动而不断改变自己在浏览器的位置。而现在我可以通过CSS中的一个定位属性来实现这样的一个效果,这个元素属性就是曾经不被支持的position:fixed; 他的含义就是:固定定位。这个固定与绝对定位很像,唯一不同的是绝对定位是被固定在网页中的某一个位置,而固定定位则是固定在浏览器的视框位置。”

程序中很多地方利用了这个css,ie7、ff都支持这个css,但ie6不支持,程序中只能是在ie6模拟这个效果。

【覆盖层】

覆盖层的作用是把焦点限制在高亮层上,原理是通过一个绝对定位的层(通常使用div),设置它的宽度和高度以致能覆盖整个屏幕(包括缩放和滚动浏览器的情况下),再给它设置一个比较高的zIndex来层叠在原有内容之上(但要比高亮层小),这样用户就只能点到这个层之上的内容了。

如果初始化时没有提供覆盖层对象,程序中会自动创建:

this.Lay = $(this.options.Lay) || document.body.insertBefore(document.createElement("div"), document.body.childNodes[0]);


其中由于document.body.appendChild()导致IE已终止操作bug,所以用了insertBefore。。

【覆盖屏幕】

覆盖层的关键就是如何做到覆盖整个屏幕(锁定整个页面),支持position:fixed的话很简单:

with(this.Lay.style){ display = "none"; zIndex = this.zIndex; left = top = 0; position = "fixed"; width = height = "100%"; }


这样能把浏览器的视框覆盖了,其中使用了fixed样式,这里的意思是定位在浏览器的视框,并100%覆盖。
注意不要理解错为这个层覆盖了整个页面,它只是把浏览器可视的部分覆盖了来达到效果。

ie6不支持怎么办?有几个方法:
1,做一个覆盖视框的层,并在onscroll时相应移动,在onresize时重新设大小;
2,做一个覆盖视框的层,在样式上模拟fixed效果;
3,做一个层覆盖了整个页面的层,并在onresize时重新设大小;
方法1的缺点是滚动时很容易露出马脚,而且不好看;方法2的缺点是需要页面结构的改动和body样式的修改,绝对不是好的架构;而我用的是方法3,有更好的方法欢迎提出。

用这个方法只要把position设为absolute,并使用一个_resize方法来设置width和height即可:

Code
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->this.Lay.style.position = "absolute";
this._resize = Bind(thisfunction(){
    
this.Lay.style.width = Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth) + "px";
    
this.Lay.style.height = Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + "px";
});


要注意的是scrollHeight和clientHeight的区别(用Height容易测试),顺带还有offsetHeight,手册上的说明:
scrollHeight:Retrieves the scrolling height of the object.
clientHeight:Retrieves the height of the object including padding, but not including margin, border, or scroll bar.
offsetHeight:Retrieves the height of the object relative to the layout or coordinate parent, as specified by the offsetParent property.

我的理解是:
scrollHeight是对象的内容的高度;
clientHeight是对象的可视部分高度;
offsetHeight是clientHeight加上border和滚动条本身高度。

举个例子吧,先说说clientHeight和offsetHeight的区别(在ie7中测试):

测的是外面的div,offsetHeight和clientHeight相差17(分别是83和100),这个相差的就是那个滚动条本身的高度。

再看看clientHeight和scrollHeight的区别(下面是模拟在ie中的情况):


可以看到clientHeight不受内容影响,都是83,即内容有没有超过对象高度都不受影响,但scrollHeight会受内容高度影响,而且从测试可以意识到:
当有滚动条时,覆盖层的高度应该取scrollHeight(内容高度);当没有滚动条时,覆盖层的高度应该取clientHeight(视框高度)。
而恰好两个情况都是取两者中比较大的值,所以就有了以下程序:
Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + "px";


设宽度时是不包括滚动条部分的而documentElement一般也没有border,所以不需要offsetWidth。

上面可以看到我用的是documentElement而不是body,手册上是这样说的:
Retrieves a reference to the root node of the document.
意思是整个文档的根节点,其实就是html节点(body的上一级),注意这是在XHTML的标准下。上面可以看到我们取值的对象是整个文档而不只是body,所以这里用documentElement。

要注意的是在window的onresize事件中scrollWidth和clientWidth的值会产生变化,程序中在onresize中使用_resize方法重新设置宽度高度:

if(isIE6){ this._resize(); window.attachEvent("onresize"this._resize); }


【覆盖select】

自定义的层给select遮挡住是一个老问题了,不过可喜的是ie7和ff都已经支持select的zIndex,只要给层设定高的zIndex就能覆盖select了,可惜对于ie6这个问题还是需要解决。

覆盖select据我所知有两个比较好的方法:
1,显示层时,先隐藏select,关闭层时再重新显示;
2,用一个iframe作为层的底,来遮住select。

方法1应该都明白,方法2就是利用iframe可以覆盖select的特性,只要把一个iframe作为层的底部就可以覆盖下面的select了,程序中是这样使用的:

this.Lay.innerHTML = '<iframe style="position:absolute;top:0;left:0;width:100%;height:100%;filter:alpha(opacity=0);"></iframe>'


可以看出这个透明的iframe也以同样覆盖整个页面,如果是有内容显示的页面最好设置z-index:-1;确保iframe在层的底部。

个人觉得使用方法2比较好,但始终是改变了页面结构,有时会比较难控制,至于方法1就比较容易方便。

【高亮层】

高亮层就是用来显示内容的层,没什么看头,所以特意加了些效果在上面,吸引一下眼球。
有兴趣的话可以结合拖放效果渐变效果,做出更好的效果。

【固定定位】

这里“固定定位”的意思是当滚动滚动条时,高亮层依然保持在浏览器对应的位置上,把Fixed设为true就会开启这个效果。

同样对于支持fixed的浏览器很简单,只要把position设为fixed就行了,这个样式本来就是这样使用的,但可怜的ie6只能模拟了。

ie6模拟的原理是在onscroll事件中,不断根据滚动的距离修正top和left。
首先设置position为absolute,要注意的是position要在覆盖层显示之前显示,否则计算覆盖层宽高时会计算偏差(例如把页面撑大)。
再给onscroll事件添加定位函数_fixed来修正滚屏参数:

this.Fixed && window.attachEvent("onscroll"this._fixed);

定位函数_fixed是这样的:

this._fixed = Bind(thisfunction(){ this.Center ? this.SetCenter() : this.SetFixed(); });


可以看出在_fixed中,当设置了居中显示时会执行SetCenter程序(后面会说明),否则就执行SetFixed程序。
先说说SetFixed程序的原理,就是把当前scrollTop减去_top值(上一个scrollTop值)再加上当前的offsetTop,就得到要设置的top值了:

Code
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->this.Box.style.top = document.documentElement.scrollTop - this._top + this.Box.offsetTop + "px";
this.Box.style.left = document.documentElement.scrollLeft - this._left + this.Box.offsetLeft + "px";
 
this._top = document.documentElement.scrollTop; this._left = document.documentElement.scrollLeft;


【居中显示】

“居中显示”的意思是高亮层位于视框左右上下居中的位置。
实现这个有两个方法:
1,视框宽度减去高亮层宽度的一半就是居中需要的left值;
2,先设置left值为50%,然后marginLeft设为负的高亮层宽度的一半。

方法1相对方法2需要多一个视框宽度,而且方法2在缩放浏览器时也能保持居中,明显方法2是更好,不过用margin会影响到left和top的计算,必须注意(例如SetFix修正的地方)。这里我选择了方法2,还要注意offsetWidth和offsetHeight需要在高亮层显示之后才能获取,所以定位程序需要放到高亮层显示之后:

Code
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->this.Box.style.top = this.Box.style.left = "50%";
if(this.Fixed){
    
this.Box.style.marginTop = - this.Box.offsetHeight / 2 + "px";
    
this.Box.style.marginLeft = - this.Box.offsetWidth / 2 + "px";
}
else{
    
this.SetCenter();
}


其中如果不是固定定位,需要用SetCenter程序来修正滚屏参数,SetCenter程序是这样的:

Code
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->this.Box.style.marginTop = document.documentElement.scrollTop - this.Box.offsetHeight / 2 + "px";
this.Box.style.marginLeft = document.documentElement.scrollLeft - this.Box.offsetWidth / 2 + "px";


【比较文档位置】

在ie6当不显示覆盖层时需要另外隐藏select,这里使用了“覆盖select”的方法1,值得留意的是这里加了个select是否在高亮层的判断:

Code
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->this._select.length = 0;
Each(document.getElementsByTagName(
"select"), Bind(thisfunction(o){
    
if(!Contains(this.Box, o)){ o.style.visibility = "hidden"this._select.push(o); }
}))


其中Contains程序是这样的:

var Contains = function(a, b){
    
return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16);
}


作用是返回a里面是否包含b,里面用到了两个函数,分别是ie的contains和ff(dom)的compareDocumentPosition。
其中contains手册里是这样写的:
Checks whether the given element is contained within the object.
意思是检测所给对象是否包含在指定对象里面。注意如果所给对象就是指定对象本身也会返回true,虽然这样不太合理。
而ff的compareDocumentPosition功能更强大。

参考Comparing Document Position看下表:
从NodeA.compareDocumentPosition(NodeB)返回的结果:

Bits Number Meaning
000000 0 Elements are identical.
000001 1 The nodes are in different documents (or one is outside of a document).
000010 2 Node B precedes Node A.
000100 4 Node A precedes Node B.
001000 8 Node B contains Node A.
010000 16 Node A contains Node B.
100000 32 For private use by the browser.

从这里可以看出NodeA.compareDocumentPosition(NodeB) & 16的意思是当第5位数是“1”时才返回16,也就是只有NodeA包含NodeB时返回16(&是位与运算)。
ps:为什么不直接a.compareDocumentPosition(b) == 16,我也不清楚。


程序代码:
Code
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->var isIE = (document.all) ? true : false;

var isIE6 = isIE && ([/MSIE (\d)\.0/i.exec(navigator.userAgent)][0][1== 6);

var $ = function (id) {
    
return "string" == typeof id ? document.getElementById(id) : id;
};

var Class = {
    create: 
function() {
        
return function() { this.initialize.apply(this, arguments); }
    }
}

var Extend = function(destination, source) {
    
for (var property in source) {
        destination[property] 
= source[property];
    }
}

var Bind = function(object, fun) {
    
return function() {
        
return fun.apply(object, arguments);
    }
}

var Each = function(list, fun){
    
for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); }
};

var Contains = function(a, b){
    
return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16);
}


var OverLay = Class.create();
OverLay.prototype 
= {
  initialize: 
function(options) {

    
this.SetOptions(options);
    
    
this.Lay = $(this.options.Lay) || document.body.insertBefore(document.createElement("div"), document.body.childNodes[0]);
    
    
this.Color = this.options.Color;
    
this.Opacity = parseInt(this.options.Opacity);
    
this.zIndex = parseInt(this.options.zIndex);
    
    
with(this.Lay.style){ display = "none"; zIndex = this.zIndex; left = top = 0; position = "fixed"; width = height = "100%"; }
    
    
if(isIE6){
        
this.Lay.style.position = "absolute";
        
//ie6设置覆盖层大小程序
        this._resize = Bind(thisfunction(){
            
this.Lay.style.width = Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth) + "px";
            
this.Lay.style.height = Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) + "px";
        });
        
//遮盖select
        this.Lay.innerHTML = '<iframe style="position:absolute;top:0;left:0;width:100%;height:100%;filter:alpha(opacity=0);"></iframe>'
    }
  },
  
//设置默认属性
  SetOptions: function(options) {
    
this.options = {//默认值
        Lay:        null,//覆盖层对象
        Color:        "#fff",//背景色
        Opacity:    50,//透明度(0-100)
        zIndex:        1000//层叠顺序
    };
    Extend(
this.options, options || {});
  },
  
//显示
  Show: function() {
    
//兼容ie6
    if(isIE6){ this._resize(); window.attachEvent("onresize"this._resize); }
    
//设置样式
    with(this.Lay.style){
        
//设置透明度
        isIE ? filter = "alpha(opacity:" + this.Opacity + ")" : opacity = this.Opacity / 100;
        backgroundColor 
= this.Color; display = "block";
    }
  },
  
//关闭
  Close: function() {
    
this.Lay.style.display = "none";
    
if(isIE6){ window.detachEvent("onresize"this._resize); }
  }
};



var LightBox = Class.create();
LightBox.prototype 
= {
  initialize: 
function(box, options) {
    
    
this.Box = $(box);//显示层
    
    
this.OverLay = new OverLay(options);//覆盖层
    
    
this.SetOptions(options);
    
    
this.Fixed = !!this.options.Fixed;
    
this.Over = !!this.options.Over;
    
this.Center = !!this.options.Center;
    
this.onShow = this.options.onShow;
    
    
this.Box.style.zIndex = this.OverLay.zIndex + 1;
    
this.Box.style.display = "none";
    
    
//兼容ie6用的属性
    if(isIE6){
        
this._top = this._left = 0this._select = [];
        
this._fixed = Bind(thisfunction(){ this.Center ? this.SetCenter() : this.SetFixed(); });
    }
  },
  
//设置默认属性
  SetOptions: function(options) {
    
this.options = {//默认值
        Over:    true,//是否显示覆盖层
        Fixed:    false,//是否固定定位
        Center:    false,//是否居中
        onShow:    function(){}//显示时执行
    };
    Extend(
this.options, options || {});
  },
  
//兼容ie6的固定定位程序
  SetFixed: function(){
    
this.Box.style.top = document.documentElement.scrollTop - this._top + this.Box.offsetTop + "px";
    
this.Box.style.left = document.documentElement.scrollLeft - this._left + this.Box.offsetLeft + "px";
    
    
this._top = document.documentElement.scrollTop; this._left = document.documentElement.scrollLeft;
  },
  
//兼容ie6的居中定位程序
  SetCenter: function(){
    
this.Box.style.marginTop = document.documentElement.scrollTop - this.Box.offsetHe
分享到:
评论

相关推荐

    【javascript实现的图片查看器】仿lightbox

    在本项目中,我们探讨的是如何使用JavaScript实现一个图片查看器,该查看器模仿了知名的Lightbox效果。Lightbox是一种流行的设计模式,当用户点击图片时,会在当前页面上以全屏、半透明背景的形式展示大图,提供更佳...

    仿LightBox效果提示框

    "仿LightBox效果提示框"是一种常见的网页设计技术,它基于JavaScript(js)实现,灵感来源于经典的LightBox特效。LightBox最初是用来展示图片的,当用户点击一张缩略图时,图片会在当前页面上以半透明背景和居中显示...

    Javascript DOM 编程实例讲解--仿LightBox效果提示框

    在这个实例中,我们将深入探讨如何使用JavaScript DOM技术来创建一个仿LightBox效果的提示框。LightBox是一种常见的图片预览功能,当用户点击图片时,图片会在当前页面上以半透明背景下的全屏模式显示,提供了一种...

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

    标题中的“仿Lightbox效果”指的是在网页设计中模拟Lightbox这一流行JavaScript库的效果。Lightbox通常用于在网页上展示图片、视频或任何其他媒体,它会在用户点击一个链接后弹出一个模态窗口,将内容置于当前页面之...

    javascript经典特效---jquery仿LightBox图片盒子单击逐渐放大的图片展示的插件下载.rar

    在本案例中,我们关注的是一个基于jQuery库实现的仿LightBox效果的图片展示插件。jQuery是一个轻量级、高性能的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计和Ajax交互。 LightBox是一种常见的图片查看...

    javascript经典特效---jquery仿Lightbox的插件jQuery UI.ariaLightbox点击图片放大显示插件下载.rar

    《jQuery UI.ariaLightbox:JavaScript中的Lightbox效果实现》 在Web开发中,为了提供更好的用户体验,我们经常需要在用户点击图片时将其放大显示,而不在原网页中打开新窗口或新页面。Lightbox技术就是为此目的...

    JavaScript仿Windows关机效果

    ### JavaScript仿Windows关机效果详解 #### 一、概述 在网页开发中,为了增加用户体验,开发者们常常会模仿各种操作系统的行为,其中一种常见的做法就是模拟Windows系统的关机动画效果。这种效果通常通过...

    仿LightBox图片盒子-YLightBox照片展示特效

    【标题】"仿LightBox图片盒子-YLightBox照片展示特效"是基于JavaScript和CSS实现的一种网页图片展示技术,它借鉴了流行的LightBox效果,为用户提供了一种优雅且沉浸式的图片浏览体验。LightBox效果通常指的是当用户...

    网友康松分享仿Win8布局+lightbox弹出层插件显示页面

    Lightbox通常使用JavaScript库实现,如jQuery Lightbox、Fancybox或Magnific Popup等,这些库提供了丰富的自定义选项和动画效果,使得开发者可以轻松集成到自己的网站中。 在实际应用中,仿Win8布局和lightbox插件...

    jquery-lightbox-0.5 仿腾讯空间相册 弹出层显示原始图片

    《jQuery Lightbox 0.5:仿腾讯空间相册弹出层显示技术解析》 在网页设计中,图片展示是一个重要的组成部分,特别是在个人空间或相册应用中。腾讯空间的相册功能以其简洁、直观的设计深受用户喜爱,尤其是点击缩略...

    用JavaScript实现仿Windows关机效果

    JavaScript实现仿Windows关机效果是一种在网页中模拟操作系统关机界面的设计手法,它主要通过创建图层并控制其样式来实现。这一效果不仅能够提供一种视觉上的交互体验,还可以帮助防止用户在执行特定操作时进行误...

    JavaScript 仿关机效果的图片层

    JavaScript仿关机效果的图片层是一种利用特定库如YUI(Yahoo User Interface Library)实现的交互式图片展示技术。在Web开发中,这种效果通常被称为Lightbox,它为用户提供了一种全屏、沉浸式的查看大图的方式,类似...

    JavaScript_JQuery_CSS_CSS_DIV漂亮的实例123个

    86. 分享一款jquery仿lightbox无刷新图片显示插件PrettyPhoto下载 87. 分享多款jQuery图片预加载切换效果(上下滚动、淡入淡出渐变等) 88. 动感十足jquery仿腾讯图片滚动浏览功能(带左右控制按钮)MovingBoxes插件...

    图片展示相册单页响应式bootstrap仿ios简洁app软件互联网it科技lightbox弹窗html5.rar

    8. JavaScript:虽然没有直接列出,但考虑到Lightbox功能,项目中很可能使用了JavaScript来处理图片的动态加载和弹窗效果。 这个项目可以作为学习HTML5、响应式设计、Bootstrap以及Lightbox应用的一个实例,对于想...

    JavaScript_JQuery_CSS_DIV漂亮的实例

    86. 分享一款jquery仿lightbox无刷新图片显示插件PrettyPhoto下载 87. 分享多款jQuery图片预加载切换效果(上下滚动、淡入淡出渐变等) 88. 动感十足jquery仿腾讯图片滚动浏览功能(带左右控制按钮)MovingBoxes插件...

    Win8布局 lightbox弹出层插件.zip

    本文将深入探讨“Win8布局 lightbox弹出层插件”,这是一个利用jQuery实现的仿Windows 8(Win8)界面风格的Lightbox效果插件。 首先,让我们了解什么是Lightbox。Lightbox是一种网页设计技术,当用户点击一个图片...

    简单动画css3动画个人博客blog仿flash响应式ajax响应式个人主页lightbox摄影图片相册迷你html5.rar

    标题中的“简单动画css3动画个人博客blog仿flash响应式ajax响应式个人主页lightbox摄影图片相册迷你html5”揭示了这个压缩包包含的是一个基于HTML5、CSS3和Ajax技术构建的个人博客模板,其特点包括动画效果、响应式...

    js编写的网页效果

    3. **漂亮动感的lightbox弹出层插件**:Lightbox是一种常见的图片预览技术,当用户点击图片链接时,会在当前页面上以半透明背景的弹窗显示大图。这个JavaScript插件可能涉及到CSS3动画、事件处理和图片加载优化等...

    JavaScript新手写的图片当前页放大显示插件

    内容索引:脚本资源,Ajax/JavaScript,图片放大 JavaScript新手写的图片当前页放大显示效果插件,仿LightBox的功能,哈哈!第一个js效果,虽然比较烂,但很有成就感!点击小图片,可在当前位置加载大图,现在很流行的...

Global site tag (gtag.js) - Google Analytics