资讯专栏INFORMATION COLUMN

用纯CSS实现简单的相册幻灯片

ivydom / 747人阅读

摘要:最后丢一个单个图片放大展示的效果,有性趣的同学可以自行研究原理,也很简单的

之前发了两篇关于CSS的文章,大家都比较关注,看来大家对这块东西都是很感兴趣的,现在趁热打铁再来一发~~

简介
  

一个用纯CSS实现的简单幻灯片效果,仅供实验,要看Demo请自备Chrome浏览器,勿用于生产环境,不然后果自付,咩哈哈哈哈哈~~

  

Demo地址:http://output.jsbin.com/tewuso

效果图
  

效果图录出来很烂,不上传了,请看Demo :(

技术点

:target伪类

object-fit属性

原理说明

:target伪类可以指定当前锚点目标元素的样式,比如下面:

查看图片

#image-1{
  display: none;
}
#image-1:target{
  display: block;
}

点一下"显示图片",原本隐藏起来的#image-1就会突然冒出来,是不是很神奇?(噗→_→)


CSS中的object-fit属性在本Demo里面只是辅助作用,其作用是指定object类元素(img、video等)中的实际内容在元素中的填充方式,跟background-size: contain/cover有点点类似。
更具体的介绍请看张鑫旭的文章:半深入理解CSS3 object-position/object-fit属性


既然知道有:target这么个神奇的东西在,那我们完全可以用CSS实现“点一个小图显示一个大图”的效果,再把HTML写得溜~一点,实现上下图连续查看也是可以的。

代码

先上HTML部分,可以看到其实这种方式实现的幻灯片效果并不太灵活,每一个上下图按钮都要写出来,当然用程序生成此类代码也是很方便的~




  
  JS Bin


  


CSS代码,很大部分都是用于定位啊布局什么的,另外还有相当一部分用于过渡动画效果,貌似有点影响性能~

html,body{
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #f0f0f0;
}

.gallery-wrapper{
  display: block;
  list-style: none;
  width: 800px;
  height: 400px;
  margin: 60px auto 0 auto;
  padding: 10px;
  background-color: #fff;
}
.gallery-wrapper li{
  display: block;
  float: left;
  list-style: none;
  width: 180px;
  height: 180px;
  padding: 10px;
}
.gallery-wrapper a{
  display: block;
  width: 180px;
  height: 180px;
  overflow: hidden;
}
.gallery-wrapper img{
  display: block;
  width: 180px;
  height: 180px;
  object-fit: cover;
  background-color: #eee;
  transition: .5s;
}
.gallery-wrapper a:hover img{
  transform: scale(1.1);
}

.hidden-images-wrapper > div{
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0,0,0,.8);
  opacity: 0;
  transition: .6s;
  pointer-events: none;
}
.hidden-images-wrapper > div:target{
  opacity: 1;
  pointer-events: auto;
}
.hidden-images-wrapper img{
  display: block;
  position: absolute;
  z-index: 3;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 740px;
  height: 500px;
  max-width: 90%;
  max-height: 90%;
  margin: auto;
  padding: 30px;
  background-color: #fff;
  border-radius: 5px;
  object-fit: contain;
  transition: .7s;
  transform: translateY(-30px);
}
.hidden-images-wrapper div:target img{
  transform: translateY(0);
}
.img-prev,
.img-next{
  display: block;
  position: absolute;
  z-index: 4;
  top: 0;
  bottom: 0;
  height: 50px;
  margin: auto 0;
  padding: 0 20px;
  color: #333;
  font-size: 16px;
  line-height: 50px;
  text-decoration: none;
  background-color: #fff;
}
.img-prev:hover,
.img-next:hover{
  background-color: #eee;
}
.img-prev{
  left: 0;
  border-radius: 0 5px 5px 0;
}
.img-next{
  right: 0;
  border-radius: 5px 0 0 5px;
}
.img-close{
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  cursor: default;
}

就这些。。。
最后丢一个单个图片放大展示的效果:http://output.jsbin.com/goyeju/2,有性趣的同学可以自行研究原理,也很简单的

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/49594.html

相关文章

  • 用纯CSS实现简单相册灯片

    摘要:最后丢一个单个图片放大展示的效果,有性趣的同学可以自行研究原理,也很简单的 之前发了两篇关于CSS的文章,大家都比较关注,看来大家对这块东西都是很感兴趣的,现在趁热打铁再来一发~~ 简介 一个用纯CSS实现的简单幻灯片效果,仅供实验,要看Demo请自备Chrome浏览器,勿用于生产环境,不然后果自付,咩哈哈哈哈哈~~ Demo地址:http://output.jsb...

    gxyz 评论0 收藏0
  • Android Gallery2技术分析

    摘要:渲染和事件处理通过这个数结构传递。对应的数据适配器分别是。用图形表示如下数据模型和数据流分析数据适配器是数据到的桥梁,连接数据源和。由管理,等在初始化的时候会通过获取一个,这个就是的数据的最终来源,即数据适配器的数据来源。 概述   图库和相机在内部实现上其实是共用的一个app,即Gallery2。它们是Gallery2的两个不同的入口。图库的主要功能是展示和管理设备中的或者网络上的媒...

    yedf 评论0 收藏0
  • Web前端常用插件

    摘要:弹窗视频嵌入插件幻灯片图片切换手机端响应式日期控件上传图片控件校验控件分页静态分页动态分页相册效果控件多级下拉图片延迟加载或响应式管理模板插件库大转盘九宫格效果整屏滚动滚动效果用于移动项目的光滑菜单浏览器端格式化工具千手观音 弹窗 1.blockUI2.overlay 3.sweetAlert 视频 1.jwplayer2.video.js html53.swfobject Flas...

    quietin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<