`
charm_888
  • 浏览: 26504 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

scriptaculous 序列化 拖动div

阅读更多
准备
包含库文件:

<script src="../prototype.js" type="text/javascript"></script>

<script src="../scriptaculous.js" type="text/javascript"></script>

可排序对象
例子:
以下代码将创建一个列表,并且可以拖动排序,每次移动户都将触发一个可以返回列表顺序的函数,并且已经序列化,可以通过Ajax传给服务器端。

//建立列表:

<ul id="x">

<li id="item_1">1</li>

<li id="items_2">2</li>

<li d="items_3">3</li>

<li d="items_4">4</li>

</ul>

//开始建立可排序组件

<script type="text/javascript" language="javascript" charset="utf-8">

// <![CDATA[

Sortable.create('x',    

{overlap:'horizontal',

ghosting:true,

constraint:false,

   onUpdate:function(sortable){alert(Sortable.serialize(sortable))},

    onChange:function(element){$('state').innerHTML = Sortable.serialize(element.parentNode)}

});

这样一个可以排序的列表就作好啦~~恭喜~!


讲解:

其中,Sortable.create()的作用是将这个id=”x”的<UL>转化为可排序控件。第一个参数’x’便是此控件的ID。 花括号{ }内的属性列表是一些预置属性和各种动作的触发函数:

各个属性的意义:

l         overlap : horizontal | vertical指明了列表是水平方向还是垂直方向排列。(在constraint属性中会和此属性有关)

l         ghosting: true | false这个属性指明了拖动行时是否会在原来位置显示虚影占位。

l         constraint: 'vertical' | 'horizontal' | false 这个属性指明了是否会被约束拖动方向。

l         onUpdate:function(sortable){} :update事件将会在完成一次排序行为时(拖动后鼠标松开时)被触发。”sortable”参数中将会传入被绑定的<UL>对象。

l         onChange:function(element){} :此事件将会在鼠标拖动时被触发,每移动一下都将触发此事件。注意:此事件传入的element参数是<UL>下被拖动的<LI>而非整个<UL>


构造函数中的参数列表:

     

参数名          初始值                     说明

element:          element

tag:                'li',                // assumes li children,标签内可被拖动的子标签名

      dropOnEmpty:       false,              ??

      tree:               false,               // fixme: unimplemented ??

      overlap:            'vertical',            // one of 'vertical', 'horizontal'

      constraint:          'vertical',           // one of 'vertical', 'horizontal', false

      handle:            false,              // or a CSS class ,CSS样式是此handle指定样式的标签部分可拖动如为false则整体可拖.      

     only:              false,                ???

      hoverclass:         null,                //被拖入位置的CSS

      ghosting:         false,                //显示残影占位

      format:            null,                 //???

      onChange:         Prototype.emptyFunction,

      onUpdate:         Prototype.emptyFunction

     dropOnEmpty:       true              //or false 指定此<UL>等可排序区域可否接受其他<UL>中的元素

     containment:       ["list1","list2"]      当dropOnEmpty设为true,在此参数中设置可接受的列表id



除了构造函数,其余的常用方法:

l          Sortable.serialize(sortable) 静态方法。返回一个当前sortable对象的按照排序顺序先后排列序号的字符串:如x[]=1& x[]=2& x[]=3,每一个<Li>的序号通过<li id="item_1">1</li>的下滑线后面的数字指定。下滑线前面的单词在一组排序中应使用一个相同的前缀。不同的组,前缀应该不同。

l          Sortable .destroy(sortable) 静态方法。撤销此对象的排序属性。



常见问题:
当我们给<UL>外面加上DIV,比如<div style=”overflow-y:scroll;height:100px;”>

我们会发现页面一团糟了,UL溢出了DIV, 页面乱七八糟。

不用急,在Div的Style中加入 “position:relative;”就解决了<UL>不听指挥的问题。

现在再用一下,拖动有点问题……我们会发现定位不准确了,这是因为没有考虑到滚动条的偏移量。

我们在Sortable的构造函数前加上一句:

Position.includeScrollOffsets = true;

此问题便会迎刃而解~~!哈。
分享到:
评论

相关推荐

    scriptaculous-js-1.9.0

    2. **拖放(Drag & Drop)**: 能够使网页元素具有可拖动的特性,允许用户通过鼠标移动元素,创建互动式界面。 3. **滑块(Sliders)**: 提供水平或垂直的滑动条,用于调整值或选择范围,常用于音量控制、时间选择等场景...

    Scriptaculous(帮助文档).pdf

    ### Scriptaculous:一个强大的JavaScript视觉效果库 #### 引言 Scriptaculous是一个功能丰富的JavaScript库,专注于提供直观、动态且美观的视觉效果。它建立在Prototype JavaScript框架之上,利用DOM(文档对象...

    Scriptaculous文档

    Scriptaculous文档 各种例子及接口 学习非常有用

    scriptaculous.js

    Scriptaculous是基于prototype.js框架的JS效果。 Scriptaculous包含了6个.js,scriptaculous.js是主文件.

    scriptaculous-js-1.8.2 最近完整打包下载

    scriptaculous  它是在javascrīpt程序库prototype之上构建的,能提供Ajax支持,主要致力于提供高交互性的可视化组件,提升Ajax应用的层次.在HTML页面中需要引用prototype和scrīptaculous程序库。  视觉特效  ...

    Scriptaculous-Effects.pdf

    - **复合元素**:比如一个 `&lt;div&gt;` 元素,可以通过 Scriptaculous 进行渐变显示或隐藏。 - **目的**:用于吸引用户注意 Ajax 结果、突出错误(如客户端验证)、移除先前的结果等。 #### 三、效果库的使用 - **基础...

    前端项目-scriptaculous.zip

    **前端项目-scriptaculous.zip** 是一个包含script.aculo.us库的压缩文件,这是一个历史悠久的JavaScript库,专门用于提升Web应用程序的用户界面效果。在Web开发领域,前端项目通常是涉及HTML、CSS和JavaScript的...

    Scriptaculous-Ajax.pdf

    根据给定文件的信息,我们可以深入探讨...此外,文档还提到了Marty Hall提供的定制化Java EE培训,这表明Scriptaculous的高级用法和最佳实践可能是课程的一部分,为那些希望深入了解该库的开发者提供了宝贵的资源。

    scriptaculous-js-1.8.2 类库

    通过简单的API,开发者可以轻松创建复杂的效果序列,实现动态的用户界面。 **3. 其他组件** Scriptaculous还包括其他组件,如Draggable(拖放功能)、Sortable(排序功能)、Slider(滑块)和Autocomplete(自动...

    scriptaculous-js-1.8.2教程与开发库

    4. **模块化设计**: Scriptaculous将各种功能拆分为独立的模块,如DragDrop、Autocompleter等,允许开发者根据需求按需加载,减少了不必要的代码体积。 ### 二、Scriptaculous的主要组件 1. **DragDrop**: 实现...

    Manning - Prototype and Scriptaculous in Action.2007

    Manning - Prototype and Scriptaculous in Action.2007 Manning - Prototype and Scriptaculous in Action.2007

    scriptaculous-js-1.8.1.rar

    除此之外,Scriptaculous.js还包含了一些实用的组件,如Autocomplete(自动完成)、Slider(滑块)、Draggable(可拖动)和Sortable(可排序)等。这些组件为常见的交互模式提供了标准化的解决方案,极大地提高了...

    介绍ajax开发框架的书《Prototype and Scriptaculous quickly》

    ### 《Prototype and Scriptaculous Quickly》:深入解析Ajax开发框架 #### 一、引言:Prototype与Scriptaculous在Ajax开发中的角色 随着Ajax技术的快速发展,一系列第三方库应运而生,这些库简化了开发者的工作...

    scriptaculous-js-1.8.3

    "Scriptaculous JS 1.8.3" 是一个JavaScript库,主要专注于提供丰富的用户界面效果和Ajax功能。Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页内容的技术。这个库简化...

    经典js库,scriptaculous-js-1.9.0

    它的特效和组件都是模块化的,可以根据需求选择性地引入,避免了不必要的资源加载。 2. **丰富的特效**:Scriptaculous JS包含了多种视觉效果,如滑动、淡入淡出、拖放、弹出框等,这些效果可以轻松地应用到网页...

    scriptaculous-js-1.7.1_beta3.zip

    Scriptaculous.js提供了可拖动(Draggable)和可排序(Sortable)的对象,允许用户通过鼠标移动页面元素。这对于创建交互式界面,如拖放列表或可调整顺序的项目列表非常有用。 #### 2.3 控件与滑块 Scriptaculous....

    Scriptaculous.chm

    2. 数据可视化:在数据图表展示中,Scriptaculous可以创建动态图表,使数据变化更加生动直观。 3. 表单验证:通过添加动态效果,如错误提示的闪烁或消失,提高表单验证的用户体验。 4. 导航菜单:利用...

Global site tag (gtag.js) - Google Analytics