酷炫图片墙
来源:互联网 发布:网络身份证读卡器 编辑:程序博客网 时间:2024/04/28 14:16
效果图截屏:
框架:
- 初始化
- 展开
- 点击事件
- 展开
- 合拢
步骤
初始化 先把图片导入并显示出来(这里用了25个图片,5行5列)
封装初始化函数
var rows=5; var columns=5; var gallary=$(".gallary"); //初始化 init(); function init() { var w=gallary.width()/columns; //盒子宽度除列数得出每个li的宽度 var h=gallary.height()/rows;//盒子高度除行数得出每个li的高度 for(var r=0;r<rows;r++ ) { for (var c = 0; c < columns; c++) { $("<li><div class='item'></div></li>") .width(w).height(h) .css({ "left": w * c + "px", "top": h * r + "px" }) .appendTo(gallary) } }
封装展开函数
function unfold() { gallary.find("li").each(function (i) { var r=parseInt(i/columns); var c=i%columns; var padding=30; var dx=c*padding-padding*(columns-1)/2; var dy=r*padding-padding*(rows-1)/2; var deg=Math.random()*60-30; $(this).css("transform","translate("+dx+"px,"+dy+"px) rotate("+deg+"deg)"); }).find(".item").css("transform","scale(0.97)").each(function (i) { $(this).css({"background-image":"url(images/"+i+".jpg)","background-size":"cover"}) }); }
封装 合拢函数
function fold(index) { gallary .find("li") .css("transform","translate(0px,0px) rotate(0deg)") .find(".item").css({"background-image":"url(images/"+index+".jpg)","background-size":"auto"}) .each(function (i) { var r=parseInt(i/columns); var c=i%columns; var x=c*100/(columns-1); var y=r*100/(rows-1); $(this).css("background-position",+x+"% "+y+"%"); }); }
设置点击事件
gallary.find("li").click(function () { if(!isFold){ unfold() }else{ var index=$(this).index(); fold(index) } });
点击事件加入判断,设定25个图片是默认散开状态,isFold=false;
isFold=true (即是图片上合拢状态)时执行展开unfold()函数;
isFold=false(即是图片上展开状态)时执行合拢fold()函数;
完整代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript" src="js/jquery-3.1.0.js"></script> <style type="text/css"> *{margin:0;padding:0;} body{background:black;} ul,li{list-style: none} ul li{background:#fff;position:absolute;transition:transform,2s,linear,left 2s,top 3s;} .gallary{width:980px;height:500px;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;} .item { width: 100%; height: 100%; background-size: cover; float:left; transition: transform,2s,ease-in,3s; } </style> <script type="text/javascript"> $(function () { var rows=5; var columns=5; var gallary=$(".gallary"); var isFold=false; //初始化 init(); function init() { var w=gallary.width()/columns; var h=gallary.height()/rows; for(var r=0;r<rows;r++ ) { for (var c = 0; c < columns; c++) { $("<li><div class='item'></div></li>") .width(w).height(h) .css({ "left": w * c + "px", "top": h * r + "px" }) .appendTo(gallary) } } // 展开 unfold(); //设置点击事件 gallary.find("li").click(function () { if(!isFold){ unfold() }else{ var index=$(this).index(); fold(index) } }); } //展开 //unfold() function unfold() { gallary.find("li").each(function (i) { var r=parseInt(i/columns); var c=i%columns; var padding=30; var dx=c*padding-padding*(columns-1)/2; var dy=r*padding-padding*(rows-1)/2; var deg=Math.random()*60-30; $(this).css("transform","translate("+dx+"px,"+dy+"px) rotate("+deg+"deg)"); }).find(".item").css("transform","scale(0.97)").each(function (i) { $(this).css({"background-image":"url(images/"+i+".jpg)","background-size":"cover"}) }); isFold=true; } //合拢 //fold() function fold(index) { gallary .find("li") .css("transform","translate(0px,0px) rotate(0deg)") .find(".item").css({"background-image":"url(images/"+index+".jpg)","background-size":"auto"}) .each(function (i) { var r=parseInt(i/columns); var c=i%columns; var x=c*100/(columns-1); var y=r*100/(rows-1); $(this).css("background-position",+x+"% "+y+"%"); }); isFold=false; } }); </script></head><body> <ul class="gallary"> </ul></body></html>
0 0
- 酷炫图片墙
- 酷炫的图片浏览
- (转载)酷炫桌面背景图片,实用命令图片
- 无图片炫酷动感导航菜单
- jQuery炫酷翻页图片相册
- 微信/微博的图片处理?-android酷炫图片处理(下)
- 实现炫酷的获取本地图片和相机拍照图片-自定义组件
- 实现炫酷的获取本地图片和相机拍照图片-自定义组件
- 图片墙瀑布式加载图片方法
- 可拖拽的图片墙
- css3图片墙
- 图片墙效果
- css3 图片展示墙
- 图片与墙碰撞
- Android仿知乎图片墙
- HTML5 之 图片墙
- Android图片墙实现
- 测试图片墙资源
- 169. Majority Element
- wait()和notify()入门例子
- javaweb银行转账案例(事务处理)JDBC常见知识点(三)
- Java对象及对象引用变量
- DOS.ORM教程、学习笔记
- 酷炫图片墙
- Android系统源代码编译—[3]准备构建
- Linux下mysql的安装
- Maven jar包手动打到本地库
- 1116四色问题
- hdoj-【2824 The Euler function】
- nginx+nginx_mod_rtmp流媒体服务器搭建手记
- this
- go的request学习