作者TonyQ (自立而後立人。)
看板Ajax
标题Re: [问题] jQuery 滑动特效
时间Tue May 8 04:46:38 2012
※ 引述《s25g5d4 (死城盗贼)》之铭言:
: 我做了一个网页 其div#container的长度很长
: 通常会超过一般使用者的浏览器视窗大小
: 所以我想做成像手机一样 按住滑鼠就能拖曳往左右拉
: 於是我想到用jQuery UI的draggable去做
: 但是做出来却可以拉拉拉..一直拉下去 而不会碰到边边就停下来
不用说,当然使先参考文件
http://jqueryui.com/demos/draggable
单纯限制不能拉过边边的部份,就以 dragable 来看:
drag event 中去停掉预设的事件或者对 x-y 轴作处理
ex. left < 0 就改成 0 之类的
: 像这个范例http://dl.dropbox.com/u/55351012/test1.html
: 其实我最希望的效果是拉过头会自己弹回来
: 不过完全搞不懂怎做...
如果想要作到这个效果其实很单纯,他有 stop event ,
你也能从 start 时纪录 window 的宽高,
等他 stop 後手动去算 scrollLeft 是不是小於0 或大於宽 ,
scrollTop 是不是小於零或大於高,
是的话就 animate({scrollLeft:newLeft,scrollTop:netTop}) 过去就好了,
原理上应该是相当单纯的才是。
不过这样作要小心,使用者如果想圈选文字是不是还能正常圈选,
一般而言,尽量不要改变使用者对既有行为的直觉为佳。
--
另一方面,如果是我作,我会直接用 mousedown 跟 mouseup 来作,
不过就是 mousedown / mouseup 搭配 scrollLeft 的操作而已。
用到 draggable 有点过头了。
--
Life's a struggle but beautiful.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.48.108
※ 编辑: TonyQ 来自: 114.25.48.108 (05/08 04:49)
※ 编辑: TonyQ 来自: 114.25.48.108 (05/08 04:49)
1F:推 s25g5d4:感谢TonyQ大.. 05/08 23:05