原生js实现照片墙效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>照片墙一多实例演示</title>
<style type="text/css">
body,div,h2,ul,li{margin:0;padding:0;}
body{font:12px/1.5 Arail;}
.box{width:860px;margin:10px auto;background:#eee;border:1px solid #b8b8b8;overflow:hidden}
.title{height:30px;line-height:30px;font-size:14px;padding:0 15px 0 35px;border-bottom:1px solid #b8b8b8;background:#fafafa url(http://js.alixixi.com/img/mm/ico.gif) 5px 50% no-repeat;}
.title span{float:left;}
.title a{float:right;color:#06f;outline:none;}
.title a:hover{color:red;}
.box ul{float:left;padding:0 15px 15px 0;}
.box li{float:left;width:140px;height:105px;padding:6px;background:#fff;border:1px solid #c3c3c3;display:inline;margin:15px 0 0 15px;list-style:none;}
.box li img{float:left;width:140px;height:105px;}
.box li.hig{padding:5px;border:2px dashed #f30;opacity:0.5;filter:alpha(opacity=50);}
</style>
<script type="text/javascript">
//获取ID
var $ = function (id) {return typeof id === "string" ? document.getElementById(id) : id};
//获取tagName
var $$ = function (tagName, oParent) {return (oParent || document).getElementsByTagName(tagName)};
//获取class
var $$$ = function (sClass, oParent) {
 var aClass = [],
 i = 0,
 reClass = new RegExp("(\\s|^)" + sClass + "($|\\s)"),
 aElement = $$("*", oParent);
 for (i = 0; i < aElement.length; i++)reClass.test(aElement[i].className) && aClass.push(aElement[i]);
 return aClass
};
//获取元素位置
function getPos(obj) {
 var iTop = obj.offsetTop;
 var iLeft = obj.offsetLeft;
 while (obj.offsetParent)
 {
 iTop += obj.offsetParent.offsetTop;
 iLeft += obj.offsetParent.offsetLeft;
 obj = obj.offsetParent;
 }
 return {top:iTop, left:iLeft} 
};
//创建照片墙对象
var PhotoWall = function () {this.initialize.apply(this, arguments)};
PhotoWall.prototype = {
 initialize: function (obj, aData)
 {
 var oThis = this;
 this.oParent = $(obj);
 this.oUl = $$("ul", this.oParent)[0];
 this.oBtn = $$("a", this.oParent)[0];
 this.zIndex = 1;
 this.aPos = [];
 this.aData = http://www.cppcns.com/wangluo/javascript/aData;
 this.dom = document.documentElement || document.body;
 this.create();
 this.oBtn.onclick = function () {oThis.randomOrder()}
 },
 create: function ()
 {
 var aFrag = document.createDocumentFragment();
 var i = 0;
 for (i = 0; i < this.aData.length; i++)
 {
  var oLi = document.createElement("li");
  var oImg = document.createElement("img");
  oImg.src = http://www.cppcns.com/wangluo/javascript/this.aData[i];
  oLi.appendChild(oImg);
  aFrag.appendChild(oLi) 
 }
 this.oUl.appendChild(aFrag);
 this.aLi = $$("li", this.oParent);
 this.changeLayout()
 },
 changeLayout: function ()
 {
 var i = 0;
 this.oParent.style.height = this.oParent.offsetHeight - 2 + "px";
 this.aPos.length = 0;
 for (i = 0; i < this.aLi.length; i++) this.aLi[i].style.cssText = ""; 
 for (i = 0; i < this.aLi.length; i++)
 {
  this.aLi[i].index = i;
  this.aLi[i].style.top = getPos(this.aLi[i]).top + "px";
  this.aLi[i].style.left = getPos(this.aLi[i]).left + "px";
  this.aPos.push({left:getPos(this.aLi[i]).left, top:getPos(this.aLi[i]).top})
 }
 for (i = 0; i < this.aLi.length; i++)
 {
  this.aLi[i].style.position = "absolute"; 
  this.aLi[i].style.margin = "0";  
  this.drag(this.aLi[i])
 } 
 },
 drag: function (obj, handle)
 {
 var oThis = this;
 var handle = handle || obj;
 handle.style.cursor = "move";
 handle.onmousedown = function (event)
 {
  var event = event || window.event; 
  var disX = event.clientX - this.offsetLeft;
  var disY = event.clientY - this.offsetTop;
  var>
  <h2 class="title"><span>一堆90后</span><a href="javascript:;" rel="external nofollow" rel="external nofollow" class="order">随机排序</a></h2>
  <ul></ul>
</div>
<div class="box">
  <h2 class="title"><span>一堆90后</span><a href="javascript:;" rel="external nofollow" rel="external nofollow" class="order">随机排序</a></h2>
  <ul></ul>
</div>
</body>
</html>

效果:

原生js实现照片墙效果

以上就是原生js实现照片墙效果的详细内容,更多关于js 照片墙的资料请关注我们其它相关文章!

原生js实现照片墙效果

扫一扫手机访问