程序员圣诞节相册源码_程序员的浪漫-动态相册源码

<style>

*{

margin: 0;

padding: 0;

}

html,body{

width: 100%;

height: 100%;

}

body{

background:#1e1e1f;

overflow:hidden;

}

.box{

width: 100%;

height: 100%;

position: relative;

transform-style: preserve-3d;

transform:rotateX(-20deg) rotateY(0deg);

}

.box img{

width: 300px;

height: 200px;

position: absolute;

left: calc(50% - 150px);

top: calc(50% - 100px);

border: 5px solid #ffffff;

user-select: none;

-webkit-box-reflect:below 10px -webkit-linear-gradient(top,rgba(0,0,0,0) 50%,rgba(0,0,0,0.5) 100%);

}

#wrap p{

width: 1200px;

height: 1200px;

background:-webkit-radial-gradient(center center,600px 600px,rgba(244,23,234,0.2),rgba(0,0,0,0));

position: absolute;

top:100%;left:50%;

margin-top: -600px;

margin-left: -600px;

border-radius:600px;

transform:rotateX(90deg);

}

</style>

</head>

<body >

<div class="box" id="wrap">

<img src="C:/Users/18201/Desktop/img/1.jpg" />

<img src="C:/Users/18201/Desktop/img/2.jpg" />

<img src="C:/Users/18201/Desktop/img/3.jpg" />

<img src="C:/Users/18201/Desktop/img/1.jpg" />

<img src="C:/Users/18201/Desktop/img/2.jpg" />

<img src="C:/Users/18201/Desktop/img/3.jpg" />

<p></P>

</div>

</body>

<script>

setTimeout(init,100);

function init(){

var imgArray = document.getElementsByTagName('img');

var deg = 360/imgArray.length;//单位度数

[].forEach.call(imgArray,function(node,index){

// console.log(index*deg);//每张图片应该旋转的度数

node.style.transform = "rotateY("+index*deg+"deg)translatez(350px)";//赋予给图片,并撑开350px

node.style.transition = "1s "+(imgArray.length - index)*0.11+"s";

});

var newX,newY,pervX,pervY,minusX,minusY;

var roY = 0 , roX = -10;

var oWrap = document.getElementById("wrap");//通过id获取元素

var timer;

// 拖拽:三个事件-按下 移动 抬起

//按下

document.onmousedown = function(ev){

ev = ev || window.event;

//鼠标按下的时候,给前一点坐标赋值,为了避免第一次相减的时候出错

lastX = ev.clientX;

lastY = ev.clientY;

//移动

this.onmousemove = function(ev){

ev = ev || window.event;

clearInterval( timer );

nowX = ev.clientX; // clientX 鼠标距离页面左边的距离

nowY = ev.clientY; // clientY ………………………………顶部………………

//当前坐标和前一点坐标差值

minusX = nowX - lastX;

minusY = nowY - lastY;

//更新wrap的旋转角度,拖拽越快-> minus变化大 -> roY变化大 -> 旋转快

roY += minusX*0.2; // roY = roY + minusX*0.2;

roX -= minusY*0.1;

oWrap.style.transform = 'rotateX('+ roX +'deg) rotateY('+ roY +'deg)';

/*

//生成div,让div跟着鼠标动

var oDiv = document.createElement('div');

oDiv.style.cssText = 'width:5px;height:5px;background:red;position:fixed;left:'+nowX+'px;top:'+nowY+'px';

this.body.appendChild(oDiv);

*/

//前一点的坐标

lastX = nowX;

lastY = nowY;

}

//抬起

this.onmouseup = function(){

this.onmousemove = null;

timer = setInterval(function(){

minusX *= 0.95;

minusY *= 0.95;

roY += minusX*0.2; // roY = roY + minusX*0.2;

roX -= minusY*0.1;

oWrap.style.transform = 'rotateX('+ roX +'deg) rotateY('+ roY +'deg)';

if ( Math.abs(minusX)<0.1 && Math.abs( minusY )<0.1 )

{

clearInterval( timer );

}

console.log( minusX );

},13);

}

return false;

}

};

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值