css3 手机端翻屏切换效果
2024-09-26 18:04:44
原理是基于css3的
1、景深:perspective:100px;
2、中心点:transform-origin:center center 0;
3、transform-style:preserve-3d 父级作变换会保留效果到子集上面
通过节点嵌套 实现立方体效果:
<div class="box">
<div class="div">
<div>
<span>1</span>
<div>
<span>2</span>
<div>
<span>3</span>
<div>
<span>4</span>
</div>
</div>
</div>
</div>
</div>
</div>
.box { width:100px;height:100px; padding:50px; margin:100px auto; perspective: 200px;}
.box .div { position: relative; width:100px;height:100px; transform-origin:center center -50px; transform-style:preserve-3d; transition:3s; }
.box .div div{ position:absolute; left:100px; top:0px; transform:rotateY(90deg); background:green; width:100px;height:100px; transform-style:preserve-3d; transform-origin:left;}
.box .div>div{ left:0px;transform:rotateY(0deg);}
.box:hover .div { transform:rotateY(-360deg); }
.div span{ color:white; display:block; color:white; text-align:center; line-height:100px; }
--------------以上是实现原理----------------------
下面是实现的效果
function setLayout(){
var list = id("imgList");
var li = list.getElementsByTagName("li");
var liH = (list.clientHeight)/4;
var str = "";
for(var i=0;i<16;i++){
str += '<li><div class="div"><div><span></span><div><span></span><div><span></span><div><span></span></div></div></div></div></div></li>';
}
list.innerHTML=str;
id("css").innerHTML += "#imgList li{height:"+liH+"px}";
for(var i=0; i<li.length;i++){
var span = li[i].getElementsByTagName("span");
for(var j=0; j<span.length;j++){
span[j].style.backgroundImage = "url("+imgUrls[j]+")";
span[j].style.backgroundPosition=-(i%4)*4+"rem -"+parseInt(i/4)*liH+"px";
}
}
}
主要是在页面生成16个li然后通过背景设置span的background-position确定每个小格子的位置
最新文章
- 阿里云服务器怎么去掉tomcat的8080端口
- Git 版本控制 在 WIN 下的一些使用方法
- ORA-00845: MEMORY_TARGET not supported on this system
- 一个小面试题sql
- thinkphp 模板替换
- C# 日期格式化的中的 正斜杠的问题
- java设计模式(二)单例模式 建造者模式
- mac 上面安装mysql-python
- python小工具:用python操作HP的Quality Center (二)----- 用异步方式提高速度
- mapreduce新旧api对比
- Mysql中的WITH ROLLUP用法
- 谷歌技术";三宝";之GFS
- windows10 hyper-v安装配置centos6.8
- 【Oracle】【1】查询N分钟之前的数据
- Java基础-类和对象
- Stateful Kubernetes Applications Made Easier: PSO and FlashBlade
- 为elasticSearch开发c++接口
- iOS可执行文件__TEXT段限制 以及 Android 65K函数限制
- Haskell语言学习笔记(49)ByteString Text
- 在linux中禁用一块硬盘
热门文章
- 解决升级mac os X EI Capitan后遇到LibclangError: dlopen(libclang.dylib, 6): image not found.的问题
- 53. Maximum Subarray@python
- CF-1013 (2019/02/09 补)
- PAT 乙级 1051
- 使用powershell批量更新git仓库
- Linux系统修改网卡名(eth0-3)
- Linux常用快捷键以及如何查看命令帮助
- 【转】centos中service命令与/etc/init.d的关系以及centos7的变化
- 【android】【android studio】修改emulator的本地化环境
- Anaconda安装和环境的搭建