javascript - 具有不同元素大小的可拖动轮播菜单

标签 javascript jquery html css jquery-ui

我有一个具有不同元素宽度的水平菜单,我想像一个可拖动的旋转木马菜单(你每天都在 iPhone 和 Android 屏幕上进行这种拖动)。 我发现很多 jQuery 插件,比如 OWL Carousel哪个做这个。然而,所有这些插件都需要所有元素的固定宽度,并指定我想在每个视口(viewport)中显示多少元素。

考虑像 Home、Administration、Stock、Reports、Personalization 这样的菜单,元素的宽度不同。我也不知道屏幕宽度,所以我也无法决定每个视口(viewport)可以显示多少个元素。这是大多数轮播滚动条所必需的。

考虑下图。外框是容器 div。标有1~6的元素是菜单项,是简单的链接(a标签)。元素 1~3 可见(4 部分可见),元素 5 和 6 隐藏。

+---------------------------+
| +----+ +---------+ +---+ +----+ +------+ +---------+
| | 11 | | 2222222 | | 3 | | 44 | | 5555 | | 6666666 |
| +----+ +---------+ +---+ +----+ +------+ +---------+
+---------------------------+

在容器上拖动会将所有元素向左或向右移动。拖动停止后,最近的菜单项应捕捉到容器的左边框(带动画)。元素的左边界是忽略负号的测量点。此外,如果所有元素都适合容器,则无法进行拖动,并且最后一项仅捕捉到菜单的右边框,不允许进行更多拖动。单击一个元素而不拖动应该导航。 视口(viewport)中的最后一项是否部分可见并不重要。

问题

我制作了菜单,我可以左右拖动它。我在捕捉最接近容器左边界的元素时遇到问题。我可以用 Javascript 和 jQuery 做到这一点,但我的解决方案变得如此复杂,以至于我自己都迷失了。

问题

是否有任何现有的 jQuery 插件可以做到这一点? 如果没有,我该如何创建捕捉元素的动画?

最佳答案

OWL 轮播 - autoWidth:true

http://www.idangero.us/sliders/swiper/demos.php - 部分幻灯片显示

关于javascript - 具有不同元素大小的可拖动轮播菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22004099/

相关文章:

jquery - 如何使用 jQuery 仅返回 id 的一部分?

php - AJAX文件上传返回值

javascript - 如何在页面加载时增加浏览器缩放级别?

jquery - 断字 css 的问题

javascript - SpiderMonkey 变量列表

javascript - JavaScript 函数和 React 钩子(Hook)有什么区别?

javascript - $dialogs.create 在我的网站上显示一个弹出表单,但定义弹出窗口的代码具有格式限制

javascript - 带有velocity.js的阶跃函数?

c# - 如何引用 SVG 命名空间的本地副本?

javascript - 从服务更改值时,ng-change 不会触发