html5 漫画效果,CSS3和js打造四格漫画风格的LightBox特效

本文档介绍如何利用HTML和CSS3制作一个四格漫画风格的Lightbox特效。该效果在一个大方框中展示四张等宽等高的图片,点击图片会放大至全屏,再次点击则恢复原尺寸。通过CSS3的transform-origin属性实现不同方向的放大效果,并通过JavaScript处理点击事件以切换图片的显示状态。所有图片需保持相同尺寸以确保效果正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这篇文章中我们想制作一个很有意思四格漫画风格的Lightbox特效。以前在报纸上可以看到很多的四格漫画,我们做的这个特效类似于这个风格,一个大方框中包含4格等宽等高的图片,当点击任意图片的时候,该图片放大到整个大方框的尺寸,再次点击图片时,图片缩小会原来的尺寸。

在HTML结构上,我们采用一个

来作为大方框,里面使用四个
来作为四个格子。

rose-red-wine

潘潘达漫画系列(一)

潘潘达漫画系列(二)

潘潘达漫画系列(三)

潘潘达漫画系列(四)

我们要使这四幅图片并排排列,并且要保证它们的尺寸大小相同。

div#quad {

background-color: #111; font-size: 0;

width: 50%; margin: 0 auto;

}

div#quad figure {

margin: 0; width: 50%; height: auto;

transition: 1s; display: inline-block;

position: relative;

}

div#quad figure img { width: 100%; height: auto; }

接下来,要确保每一个

都从它的远角开始transform。注意代码中没有写厂商的前缀。

div#quad figure:nth-child(1) { transform-origin: top left; }

div#quad figure:nth-child(2) { transform-origin: top right; }

div#quad figure:nth-child(3) { transform-origin: bottom left; }

div#quad figure:nth-child(4) { transform-origin: bottom right; }

最后,为图片的标题添加一些样式:

div#quad figure figcaption {

margin: 0; opacity: 0;

background: rgba(0,0,0,0.3); color: #fff;

padding: .3rem; font-size: 1.2rem;

position: absolute; bottom: 0; width: 100%;

transition: 1s 1s opacity;

}

.expanded { transform: scale(2); z-index: 5; }

div#quad figure.expanded figcaption { opacity: 1; }

div.full figure:not(.expanded) { pointer-events: none; }

div#quad figure:hover { cursor: pointer; z-index: 4; }

上面的CSS3代码十分好理解,就不再多说了。下面来看看js代码。代码要写在文档的最后。

var quadimages = document.querySelectorAll("#quad figure");

for(i=0; i

quadimages[i].addEventListener( 'click', function(){ this.classList.toggle("expanded");

quad.classList.toggle("full") }

);

}

当我们点击或触摸缩略图的时候,通过js代码为其添加相应的class来使它伸展到父容器的宽度,当图片在放大状态下,它的z-index属性是最高的,这样确保了它在其它图片的上面。为了更加稳妥,CSS代码中还去除了其它图片的pointer-events事件。

制作这个四个漫画风格的Lightbox特效的唯一条件的所有的图片都一样尺寸。按照这个原理,我们也可以制作6格漫画风格或9格漫画风格的Lightbox特效,我们只需要修改一下transform-origin即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值