html+css+js 制作表白翻页相册
Posted 静Yu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html+css+js 制作表白翻页相册相关的知识,希望对你有一定的参考价值。
💛作者主页:静Yu
🧡简介:CSDN全栈优质创作者、华为云享专家、前端知识交流社区创建者
💛社区地址:https://bbs.csdn.net/forums/JingYu
🧡私信我获取源码,点赞、关注、评论
引言
每逢佳节或者女朋友生日是不是不知道该准备什么惊喜、送什么礼物。今天我来教你一手,简单易操作、不需要深度的前端学习,准备一份不一样的礼物。
操作效果
废话不多说,直接上效果视频。
翻页相册
代码学习
1.html部分
HTML部分就是通过简单地列表标签和容器标签组成。
项目整体是通过<ul>
无序列表标签构成和列表项目标签<li>
配合使用,一共为12列,而每一列又定义为一个块,由块级元素<div>
完成。
每个<div>
标签中是一张照片定义了照片的高度和宽度。
部分源码如下:
<li>
<div class='picBox'>
<div class='show'>
<img height='180px' width='180px' src='img/pic1.png'>
</div>
<div class='hide'>
<h3>
我❥
</h3>
</div>
</div>
</li>
<li>
<div class='picBox'>
<div class='show'>
<img height='180px' width='180px' src='img/pic2.png'>
</div>
<div class='hide'>
<h3>
好❥
</h3>
</div>
</div>
</li>
2.CSS部分
*
margin:0;
body
background-color: #2F2F2F;
.wrapper
max-width:900px;
margin:80px auto;
.wrapper li
position: relative;
width: 180px;
height: 180px;
list-style:none;
margin: 5px;
display: inline-block;
perspective: 300px;
.picBox
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
transform-style: preserve-3d;
transform-origin: 50% 50% -90px;
animation: 200ms ease-out 0ms 1 normal forwards;
3.js部分
在HTML部分会引入js文件,代码如下:
<script src="js/jquery.min.js"></script>
<script src="js/demo.js"></script>
demo.js
function Index(node)
this.node = node;
this.init();
;
Index.prototype.init = function ()
var self = this;
this.nodes = [];
Array.prototype.slice.call(self.node, 0).forEach(function (item, index)
self.nodes.push(self.update(item));
self.bindEvents(item, index);
);
;
Index.prototype.update = function (item)
return
w: item.offsetWidth,
h: item.offsetHeight,
l: item.offsetLeft,
t: item.offsetTop
;
Index.prototype.bindEvents = function (item, index)
var self = this;
$(item).on('mouseenter', function (e)
self.addClass(e, item, 'in', index);
return false;
)
$(item).on('mouseleave', function (e)
self.addClass(e, item, 'out', index);
return false;
)
;
Index.prototype.addClass = function (e, item, state, index)
var direction = this.getDirection(e, index);
var class_suffix = '';
switch (direction)
case 0:
class_suffix = '-top';
break;
case 1:
class_suffix = '-right';
break;
case 2:
class_suffix = '-bottom';
break;
case 3:
class_suffix = '-left';
break;
item.className = '';
item.classList.add(state + class_suffix);
;
Index.prototype.getDirection = function (e, index)
var w = this.nodes[index].w,
h = this.nodes[index].h,
x = e.pageX - this.nodes[index].l - w / 2 ,
y = e.pageY - this.nodes[index].t - h / 2 ;
// 取到x,y两点坐标
d=(Math.round(((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90)+3) % 4;
return d;//d的数值用于判断方向上下左右。
;
new Index($('li'));
源码给你
一个点赞、一条评论,源码就是你的了!!!
以上是关于html+css+js 制作表白翻页相册的主要内容,如果未能解决你的问题,请参考以下文章
HTML5七夕情人节表白网页制作——蓝色梦幻海洋3D相册—— HTML+CSS+JavaScript
HTML5七夕情人节表白网页制作 __浪漫空中散落的花瓣3D相册__ HTML+CSS+JavaScript
我是如何用一行代码表白学妹~❤520情人节送女朋友的3D樱花雨相册礼物❤~(程序员表白专属)
HTML+CSS+JS520告白表白模板在线制作(七夕情人节表白网页代码)