记得很久没有写blog了,可能是因为人累了,心也累了,哎。。。 这是最近一个项目中用到的一个主界面,贴上来希望可以帮到一些朋友。
效果图:
这是可以直接运行看实例的,注释不多,有例子,有代码,应该差不多了,另外还有三个jquery包,可以到网上下载。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
html, body
{
height: 100%;
margin: 0px;
padding: 0px;
font-size: 12px;
}
#dvAll
{
width: 100%;
}
#dvAll div
{
}
.dvallChild
{
margin-top: 5px;
float: left;
margin-left: 5px;
height:100%;
}
.dvallChild div
{
}
.dvcontent
{
cursor: move;
width: 100%;
height: 27px;
line-height: 27px;
vertical-align: middle;
margin-top: 0px;
border: solic 1px green;
background-color: Blue;
background-image: url('bg.gif');
}
.hovercls:
{
border: 1px dashed red;
background: red;
height: 200px;
line-height: 20px;
}
.placeholder
{
border-bottom: gray 2px dashed;
border-left: gray 2px dashed;
min-height: 100px;
margin-bottom: 20px;
border-top: gray 2px dashed;
border-right: gray 2px dashed;
}
.cursorAt
{
}
.noremove
{
margin-top: 5px;
line-height: 20px;
}
.dvChild
{
border: 1px solid #D2D2D2;
margin-top: 5px;
}
.dvtitlecls
{
font-weight: bolder;
float: left;
width: 90%;
text-indent: 5px;
}
.dvdocls
{
float: left;
width: 10%;
font-weight: bolder;
cursor: pointer;
text-align:right;
}
.dvFont
{
margin-left: 5px;
margin-right: 5px;
}
</style>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$(".dvallChild").sortable({
connectWith: '.dvallChild', //指定拖动区域
// items: ':not(.noremove)',
opacity: 0.5, //透明度
// helper: 'original',
placeholder: "placeholder", //拖动虚线框
revert: true, //是否有动画
dropOnEmpty: true,
distance: 10,
appendTo: 'body',
cancel: '.noremove' //不参加拖动
// zIndex: 10
});
//从本地cookie获取布局
ReadLayoutPosition();
});
//布局 1:3 1:2:1 3:1 1:1:1
function ControlLayout(t) {
if (t == 1) {
$("#dvleft").css("width", "24%");
$("#dvcenter").css("width", "73%");
$("#dvright").css("width", "0");
var dvobjleft = $("#dvleft").children("div");
var dvobjcenter = $("#dvcenter").children("div");
var dvobjright = $("#dvright").children("div");
// 1:3
if (dvobjleft.length >= 1 && dvobjcenter.length >= 1 && dvobjright.length == 0) {
}
else if (dvobjcenter.length >= 1 && dvobjright.length == 0 && dvobjleft.length == 0) {
//1:1:1
$("#dvleft").append(dvobjcenter[0]);
}
else if (dvobjright.length >= 1 && dvobjleft.length == 0 && dvobjcenter.length >= 1) {
// 3:1
var obj2 = $("#dvright");
$("#dvleft").append(obj2[0].innerHTML);
obj2[0].innerHTML = "";
}
else if (dvobjright.length >= 1 && dvobjleft.length >= 1 && dvobjcenter.length >= 1) {
// 1:2:1
var obj2 = $("#dvright");
$("#dvleft").append(obj2[0].innerHTML);
obj2[0].innerHTML = "";
}
}
else if (t == 2) {
$("#dvleft").css("width", "24%");
$("#dvcenter").css("width", "49%");
$("#dvright").css("width", "24%");
var dvItem = null;
var dvobjleft = $("#dvleft").children("div");
var dvobjcenter = $("#dvcenter").children("div");
var dvobjright = $("#dvright").children("div");
// 1:3
if (dvobjleft.length >= 1 && dvobjcenter.length >= 1 && dvobjright.length == 0) {
var obj2 = $("#dvleft");
$("#dvright").append(obj2[0].innerHTML);
obj2[0].innerHTML = "";
}
else if (dvobjcenter.length > 2 && dvobjright.length == 0 && dvobjleft.length == 0) {
//1:1:1
$("#dvleft").append(dvobjcenter[0]);
$("#dvright").append(dvobjcenter[1]);
}
else if (dvobjright.length >= 1 && dvobjleft.length == 0 && dvobjcenter.length >= 1) {
// 3:1
$("#dvleft").append(dvobjright[0]);
}
else if (dvobjright.length >= 1 && dvobjleft.length >= 1 && dvobjcenter.length >= 1) {
}
}
else if (t == 3) {
$("#dvleft").css("width", "0");
$("#dvcenter").css("width", "73%");
$("#dvright").css("width", "24%");
var dvobjleft = $("#dvleft").children("div");
var dvobjcenter = $("#dvcenter").children("div");
var dvobjright = $("#dvright").children("div");
// 1:3
if (dvobjleft.length >= 1 && dvobjcenter.length >= 1 && dvobjright.length == 0) {
var obj2 = $("#dvleft");
$("#dvright").append(obj2[0].innerHTML);
obj2[0].innerHTML = "";
}
else if (dvobjcenter.length >= 1 && dvobjright.length == 0 && dvobjleft.length == 0) {
//1:1:1
$("#dvright").append(dvobjcenter[0]);
}
else if (dvobjright.length >= 1 && dvobjleft.length == 0 && dvobjcenter.length >= 1) {
// 3:1
}
else if (dvobjright.length >= 1 && dvobjleft.length >= 1 && dvobjcenter.length >= 1) {
// 1:2:1
var obj2 = $("#dvleft");
$("#dvright").append(obj2[0].innerHTML);
obj2[0].innerHTML = "";
}
}
else if (t == 4) {
$("#dvleft").css("width", "0");
$("#dvcenter").css("width", "97%");
$("#dvright").css("width", "0");
var obj1 = $("#dvleft");
var obj2 = $("#dvright");
if (obj1.length > 0) {
$("#dvcenter").append(obj1[0].innerHTML);
}
if (obj2.length > 0) {
$("#dvcenter").append(obj2[0].innerHTML);
}
obj1[0].innerHTML = "";
obj2[0].innerHTML = "";
}
}
function SetControlToOther(ofrom, oto) {
var obj = ofrom[0].innerHTML;
oto.append(obj);
ofrom[0].innerHTML = "";
}
//保存当前布局cookie
function setLayoutPosition() {
var dvlist = "";
$.each($(".dvallChild"), function (m) {
dvlist += $(this).attr('id') + ":";
$.each($(this).children(".dvChild"), function (n) {
dvlist += $(this).attr('id') + "@";
});
dvlist += ":" + $(this).css('width');
dvlist += "|";
});
$.cookie("dvlist", dvlist)
alert("保存成功");
}
//读取cookie
function ReadLayoutPosition() {
var dvlist = $.cookie("dvlist");
if (dvlist != null) {
// document.write(dvlist);
var arrayColumn = dvlist.split('|');
$.each(arrayColumn, function (m, n) {
var elemId = n.split(':');
var arrRow = n.split(':')[1] ? n.split(':')[1].split('@') : "";
//获取宽度
$("#" + elemId).css("width", n.split(':')[2]);
$.each(arrRow, function (m, n) {
if (n) {
//把序列填加进容器
$("#" + elemId).append($("#" + n).attr('id', n));
}
});
});
}
}
function SetExpand() {
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div style="padding-top: 10px; text-indent: 8px;">
<a href="#none" οnclick="ControlLayout(1)">1:3</a> <a href="#none" οnclick="ControlLayout(2)">
1:2:1</a> <a href="#none" οnclick="ControlLayout(3)">3:1</a> <a href="#none" οnclick="ControlLayout(4)">
1:1:1</a>
</div>
<div>
<input type="button" id="btnsetCook" value="保存位置" οnclick="setLayoutPosition()" />
</div>
<div id="dvAll">
<div id="dvleft" style="width: 24%;" class="dvallChild">
<div class="dvChild" id="c1">
<div class="dvcontent">
<div class="dvtitlecls">
相册</div>
<div class="dvdocls" οnclick="SetExpand()">
-- </div>
</div>
<div class="noremove" id="abc1">
<div class="dvFont">
内容内容内容内容内容内容内容内容内容内容内容 内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容
内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容 内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容
</div>
</div>
</div>
<div class="dvChild" id="c2">
<div class="dvcontent">
<div class="dvtitlecls">
留言板</div>
<div class="dvdocls">
-- </div>
</div>
<div class="noremove">
<div class="dvFont">
内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss
内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss
内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss
内容.内容.内容.内容.内容.内容.ssaa
</div>
</div>
</div>
</div>
<div id="dvcenter" style="width: 49%;" class="dvallChild">
<div class="dvChild" id="c3">
<div class="dvcontent">
<div class="dvtitlecls" >
个人中心</div>
<div class="dvdocls" >
-- </div>
</div>
<div class="noremove">
<div class="dvFont">
内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss
内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss
内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss
内容.内容.内容.内容.内容.内容.ssaa
</div>
</div>
</div>
</div>
<div id="dvright" style="width: 24%;" class="dvallChild">
<div class="dvChild" id="c4">
<div class="dvcontent">
<div class="dvtitlecls">
QQ农场</div>
<div class="dvdocls">
-- </div>
</div>
<div class="noremove">
<div class="dvFont">
内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss
内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss
内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss 内容.内容.内容.内容.内容.内容.ss
内容.内容.内容.内容.内容.内容.ssaa
</div>
</div>
</div>
</div>
</div>
</form>
</body>
</html>