<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style id="css">
*{
margin: 0;
padding: 0;
}
li{
list-style-type: none;
}
.wrap{
width: 500px;
height: 300px;
margin: 50px auto;
box-shadow: 0 0 120px #333;
position: relative;
}
/*..................li style.................*/
.piclist{
width: 100%;
height: 300px; /*caution*/
-webkit-perspective:800px; /*景深*/
overflow: hidden;
}
.piclist li{
height: 300px;
position: relative;
float: left; -webkit-transform-style:preserve-3d;
-webkit-transform-origin:center center -150px; /*注意-150px*/
}
.piclist li a{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.piclist li a:nth-of-type(1){
background: url(a.jpg) no-repeat;
}
.piclist li a:nth-of-type(2){
background: url(b.jpg) no-repeat; top: -300px;
-webkit-transform-origin:bottom;
-webkit-transform:rotateX(90deg);
/*-webkit-transform-origin:top;
-webkit-transform:rotateX(-90deg);*/
}
.piclist li a:nth-of-type(3){
background: url(c.jpg) no-repeat; -webkit-transform:translateZ(-300px) rotateX(180deg); /*翻转过来*/
}
.piclist li a:nth-of-type(4){
background: url(d.jpg) no-repeat; top: 300px;
-webkit-transform-origin:top;
-webkit-transform:rotateX(-90deg);
/*-webkit-transform-origin:bottom;
-webkit-transform:rotateX(90deg);*/
}
.piclist li span{
background-color: #333;
position: absolute;
top: 0;
width: 300px; /*注意这里大小和a的大小是不一样的喔*/
height: 300px;
}
.piclist li span:nth-of-type(1){
left: 0; /*靠左*/ -webkit-transform-origin:left;
-webkit-transform:rotateY(90deg);
}
.piclist li span:nth-of-type(2){
right: 0; /*靠右*/ -webkit-transform-origin:right;
-webkit-transform:rotateY(-90deg);
}
/*......................btn sytle............*/
.btnlist{
position: absolute;
right: 0;
bottom: -50px;
}
.btnlist li{
float: left;
width: 30px;
height: 30px;
text-align: center;
background-color: gray;
margin-right: 10px;
border-radius: 50%;
font: italic 16px/30px "Arial";
cursor: pointer;
color: #fff;
-webkit-user-select:none;
}
.btnlist .active{
background-color: orange;
}
</style>
</head>
<body>
<div class="wrap">
<ul class="piclist" id="piclist">
<!-- <li>
<a href="javascript:;"></a>
<a href="javascript:;"></a>
<a href="javascript:;"></a>
<a href="javascript:;"></a>
<span></span>
<span></span>
</li> -->
</ul>
<ol class="btnlist" id="btnlist">
<li class="active">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ol>
</div>
<script>
var oPic=document.getElementById("piclist");
var aPicList=oPic.getElementsByTagName("li");
var oBtn=document.getElementById("btnlist");
var aBtnLi=oBtn.getElementsByTagName("li");
var oCss=document.getElementById("css");
var sCss=""; var oneW=100; //调整此li宽度或间隔时间来调整效果
var iNum=parseInt(oPic.clientWidth/oneW);
var iZindex=0;
var sPic="";
var arrZ=[];
for(var i=0;i<iNum;i++){
i>iNum/2?iZindex--:iZindex++;
arrZ.push(iZindex);
sPic+='<li><a href="javascript:;"></a><a href="javascript:;"></a><a href="javascript:;"></a><a href="javascript:;"></a><span></span><span></span></li>';
sCss+=".piclist li:nth-of-type("+(i+1)+"){z-index:"+iZindex+";}"; //z-index:iZindex(X)凡是(只有)变量都是"+var+",此地外层用双引号
sCss+=".piclist li:nth-of-type("+(i+1)+") a{background-position:-"+oneW*i+"px 0;}";
}
oPic.innerHTML=sPic;
oCss.innerHTML+=sCss;
//或者这样加z-index
// for(var i=0;i<iNum;i++){
// aPicList[i].style.zIndex=arrZ[i]; //一定要在oPic.innerHTML=sPic;后设置z-index
// } for(var i=0;i<aPicList.length;i++){
aPicList[i].style.width=oneW+"px";
}
var iNow=0;
for(var i=0;i<aBtnLi.length;i++){
(function(index){
aBtnLi[index].onclick=function(){
for(var i=0;i<aPicList.length;i++){
aPicList[i].style.WebkitTransition=".5s "+i*100+"ms";
aPicList[i].style.WebkitTransform="rotateX(-"+(index*90)+"deg)"; //index*90
} //console.log(index);
aBtnLi[iNow].className="";
aBtnLi[index].className="active"; //注意这里aBtnLi[index]
iNow=index;
};
})(i);
}
</script>
</body>
</html>

最新文章

  1. [Python核心编程] 第1章 欢迎来到Python世界
  2. SharePoint Foundation 2013 安装出错
  3. 深入浅出MFC[摘记]
  4. jQuery漂亮图标的垂直导航菜单
  5. CSS hack 汇总
  6. loopback 03
  7. SQLSERVER复制的要点
  8. Direct3D11学习:(五)演示程序框架
  9. mariadb connector bug
  10. Slider 滑动条效果
  11. python学习笔记--Django入门三 Django 与数据库的交互:数据建模
  12. 1044 - Palindrome Partitioning(区间DP)
  13. PLSql连接远程Oracle方法
  14. 关于STM32在程序中间修改PWM值的总结(原创)
  15. 【知识整理】这可能是最好的RxJava 2.x 入门教程(三)
  16. JavaWeb小项目(一)
  17. opencv之人脸识别
  18. iTOP-4418开发板支持Android4.4/5.1.1系统、Linux3.4.39、QT2.2/4.7/5.7、Ubuntu12.04
  19. gentoo virtual couldnt download
  20. CF875F Royal Questions 基环树、Kruskal

热门文章

  1. win7 iis6怎么部署.net网站
  2. RAM和ROM和Flash ROM的区别
  3. [转]screen 的使用
  4. 【转】android 签名验证防止重打包
  5. 【BZOJ2083】[Poi2010]Intelligence test 二分
  6. mysql系列之8.mysql高可用 (mha4mysql)
  7. 错误: 非法字符: &#39;\ufeff&#39; 解决方案|错误: 需要class, interface或enum
  8. 开发的第一个PHP扩展
  9. Why use async requests instead of using a larger threadpool?(转载)
  10. perl之创建临时文件夹遇到同名文件该咋办