Avalon.js 实现Google Plus风格图片拖动排序及源码下载
50 浏览量
更新于2024-08-31
收藏 80KB PDF 举报
本文档详细介绍了如何使用Avalon.js框架实现类似Google Plus的图片多张拖动排序功能。Avalon.js是一款轻量级的JavaScript MVVM库,适用于构建单页应用(SPA)和富客户端应用。作者提供了一份源码下载链接,以便开发者可以直接获取并参考。
首先,实现的关键在于创建一个响应式布局,确保图片在不同浏览器和屏幕尺寸下的显示效果。布局采用了HTML结构 `<div id='wrap'>` 包含一个无序列表 `<ul class='justify'>`,每个列表项 `<li>` 包含图片、拖动代理元素和一些辅助元素。为了兼容IE7、8和Firefox,以及现代浏览器,使用了`inline-block` 和文本对齐的CSS属性,低版本采用`text-align:justify`,而在支持flexbox的现代浏览器中,使用了`display:flex`和`justify-content:space-between`来实现图片间的等间距布局。
在CSS中,`<div class='photo_mask'></div>` 用于遮罩图片,隐藏原始的图片控件;`<div class="dummy"></div>` 是一个占位元素,用来调整图片的实际大小和位置;`<img>` 是实际的图片元素,配合`<i>` 作为可拖动区域。当鼠标悬停在图片上时,`.no_selected` 类会被添加,表示未被选中。
在拖动功能的实现上,Avalon.js提供了事件监听和数据绑定的能力,允许用户通过鼠标操作改变图片的顺序。拖动代理图片始终保持等比例居中,当拖动到目标位置时,相邻图片会根据规则发生偏移。例如,最左边或最右边的图片仅会有一侧图片移动,其余保持不动。
为了达到预期效果,开发者需要处理以下几点:
1. 图片布局:使用`justify-content: space-between` 或 `text-align: justify` 保证图片间的等间距,同时设置合理的间距与边界条件。
2. 响应式设计:通过媒体查询和计算,确定在特定尺寸下调整图片数量、间距或缩放策略。
3. 拖动行为:使用Avalon.js的drag-and-drop API,监听`dragstart`、`dragover`、`drop` 事件,更新图片的位置,并可能涉及到数据同步。
4. 边界处理:确保在图片拖动到边缘时,正确处理边界效应,如只让一行的第一张或最后一张图片发生偏移。
源码下载链接可供读者下载,用于直接集成到项目中并根据需求进行定制。本文档为开发者提供了一个实用的示例,可以帮助他们快速理解和实现类似的拖动排序功能。
2022-01-13 上传
2020-12-12 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2017-07-11 上传
2020-10-24 上传
2020-12-29 上传
weixin_38590996
- 粉丝: 8
- 资源: 928
最新资源
- ellipse:此函数根据中心 x、y 坐标以及水平和垂直半径计算和绘制椭圆的坐标。-matlab开发
- Blake Smith's SEO Consulting-crx插件
- multi_ping:ping服务器以检查网络质量(您知道我在说什么
- 多重请求网址:客户产品技术练习,从包含Urls数组的给定参数返回json数据
- 基于PHP的正义网整站打包适合博客自媒体源码.zip
- salty-dotfiles:使用无主的 SaltStack Minion 自动配置我的个人环境
- 形式设计
- 行业分类-设备装置-一种设置在钻机回转平台上的摆动机构.zip
- grakn-vis-utils:grakn数据库,破折号React力图和GUI之间进行交互的功能
- messagingmenu:Gnome Shell的消息菜单
- Json2dart_web:用于将json数据转换为适用于mc包的dart模型的网站
- NDSC:NV的挑战
- proj_MUSINSA:Project_MUSINSA
- Portable Ubuntu Remix-开源
- 百度搜索助手-crx插件
- stdfure.zip