您的位置:首页 > Web前端 > JQuery

jquery easy widgets plugin 插件(拖动布局)

2009-02-12 15:47 471 查看
这个插件在功能上来说是比较强大的了,但用起来却比较简单,对想做拖动布局的来说简直是福音。它不但可做到拖动布局,还能保存拖动后的布局,也封装了和拖动布局相关的一些操作,比如折叠,隐藏拖动块,编辑等。闲话少说,还是看看怎么用吧!

首先当然是引入相关的js文件:

jquery.min.js jq框架

jquery-ui.min.js jq的ui

jquery.easywidgets.js 插件文件

接着写初始的布局代码:


程序代码

<div id="top">头部</div>

<div id="main">

<div class="widget-place column1">

<div class="widget">

<div class="widget-header"> <strong>可以拖动</strong> </div>

<div class="widget-content">可以拖动布局的内容</div>

</div>

<div class="widget">

<div class="widget-header"> <strong>可以拖动</strong> </div>

<div class="widget-content"> 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局</div>

</div>

</div>

<div class="widget-place column2">

<div class="widget">

<div class="widget-header c2_1"> <strong>可以拖动有样式</strong> </div>

<div class="widget-content"> 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局</div>

</div>

<div class="widget">

<div class="widget-header"> <strong>可以拖动</strong> </div>

<div class="widget-content"> 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局</div>

</div>

</div>

<div class="widget-place column3">

<div class="widget">

<div class="widget-header"> <strong>可以拖动</strong> </div>

<div class="widget-content"> 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局</div>

</div>

<div class="widget">

<div class="widget-header"> <strong>可以拖动</strong> </div>

<div class="widget-content"> 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局</div>

</div>

</div>

<div style="clear:both;"></div>

</div>

<div id="bottom">底部</div>

我 上面的代码是三列的布局,每列有两个拖动块。看看,是不是很有规律??<div class="widget-place">...</div>就是一列,而<div class="widget">...</div>就是一个拖动块,<div id="widget-header"></div>就是拖动手柄,就是鼠标按在这里可以拖动,结构就这么简单,至于列的class属 性值column1,column2,column3是为了让你区别每一列的,当然也是为了写css,这些你可以随便取,至于其他用来美化布局的样式你可 以自己根据需要添加,比如上面的我在拖动手柄上添加的c2_1。

要实现三列,少不了css


程序代码

<style type="text/css">

body{

margin:0px;

font-size:12px;

}

#top,#main,#bottom{

margin:0px auto;

width:960px;

border:1px solid #CC6666;

}

#top{

height:100px;

margin-bottom:5px;

}

#main{

padding:5px 0px 5px 0px;

}

#bottom{

height:50px;

margin-top:5px;

}

#main .widget-place{

float:left;

width:310px;

/*拖动块的高度是一定要的

不然当你把一列的所有可拖动

的块东拖到其他列的时候会有

问题,这个你可以根据具体情

况设置*/

height:auto;

min-height:200px;

/*height:400px;*/

}

#main .column1{

margin-left:4px;

}

#main .column2{

margin-left:5px;

margin-right:5px;

}

#main .widget{

border:1px solid #CC99CC;

margin-bottom:5px;

}

#main .widget-header{

line-height:25px;

}

.c2_1{

divne-height:30px;

background:#999966;

}

/*这个是拖动的时候用来占位的样式*/

.widget-placeholder {

border:1px dashed #FF99CC;

}

</style>

最后,就是用这个插件了:


程序代码

$(document).ready(function(){

$.fn.EasyWidgets();

});

看看效果

呵呵!是不是不能拖动??不用急,你只要给可拖动块的class属性增加一个值movable就得了,也就是把

<div class="widget">...</div>变为<div class="widget movable">...</div>。

好了,再看看效果。拖动演示

怎 么样,一个拖动效果就这样搞定了!现在看看怎么实现拖动的其他操作。其实也很简单,不需要任何js代码!你只要给可拖动块的class属性增加一个值 collapsable就可以实现折叠,增加一个值removable就可以实现隐藏折叠块,增加一个值editable就可以实现编辑。当然若可以编辑 你当然要给一个装编辑内容的容器。看看下面的修改后的代码:


程序代码

<div class="widget movable collapsable removable editable">

<div class="widget-header"> <strong>可以拖动</strong> </div>

<div class="widget-editbox" style="background:#CC6699">

这里就是放编辑的内容,为了显眼,我加了背景

</div>

<div class="widget-content"> 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局 可以拖动布局</div>

</div

为了使拖动块的内容初始是折叠的,你还可以给可拖动块的class属性增加一个值collapse。

演示效果

这些文字是因为的,能不能变成汉字呢??当然能,作者已经考虑到这个问题了。只要给js增加几个参数就可以了:


程序代码

$(document).ready(function(){

$.fn.EasyWidgets({

i18n : {

editText : '编辑',

closeText : '关闭',

extendText : '展开',

collapseText : '折叠',

cancelEditText : '取消'

}

});

});

演示效果

就说这些基本的了,还有太多的功能就靠自己去研究了,比如拖动时实现一些效果,把“编辑”,“关闭”用图片代替,点击“编辑”,“关闭”等回调一些函数等等。

最后说说怎么保存拖动后的布局。

你 要把每一列增加一个id属性:第一列id="widget-place-1",第二列id="widget-place-2",一次类推,把每一个拖动块 也增加一个id属性:第一个拖动块id="identifierwidget-1",第二个拖动块id="identifierwidget-2",以此 类推,至于哪个是第一个拖动块,哪个是第二个拖动块,你可以随意自己取,没有什么顺序,最后就是设置一个参数就可以了:


程序代码

$(document).ready(function(){

$.fn.EasyWidgets({

//这个就可以保存布局了

behaviour : {

useCookies : true

},

i18n : {

editText : '编辑',

closeText : '关闭',

extendText : '展开',

collapseText : '折叠',

cancelEditText : '取消'

}

});

});

保存布局演示

最后提供原始文件下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: