【问题标题】:add swipe effect for the jquery fancybox lightbox [closed]为jquery fancybox灯箱添加滑动效果[关闭]
【发布时间】:2012-03-20 10:40:08
【问题描述】:

Fancybox 得到全面支持,并且在桌面平台上运行良好,但移动/触控设备不支持 :hover 状态属性,因此,如果显示如下的 fancybox 库:

<a class="fancybox" rel="gallery" href="image01.jpg">01</a>
<a class="fancybox" rel="gallery" href="image02.jpg">02</a>
<a class="fancybox" rel="gallery" href="image03.jpg">03</a>
... etc.

还有这个简单的代码:

$(".fancybox").fancybox();

fancybox 导航箭头需要双击来移动到下一个项目,一个来显示导航箭头 (:hover),另一个来实际前进到下一个/上一个项目。

问题是:fancybox 是否有适用于 ipad、iphone 等的滑动功能?如果没有,如何使用jQuery实现?

【问题讨论】:

  • 我想要完成同样的事情,在 Github 上找到了这个修改过的代码:https://github.com/rytikovCode/fancyBox 另外,我是在 Stack Overflow 上回答的新手,如果我搞砸了,我的错...

标签: jquery mobile fancybox swipe


【解决方案1】:

如果您想将滑动效果完全集成到您的fancybox,您只需将以下行添加到您的fancybox.js 代码中::

将代码复制到_setContent函数中(推荐在函数的最后)::

$(F.outer).on('swipeleft', function() {
    F.next();
});
$(F.outer).on('swiperight', function() {
    F.prev();
});

要完成这项工作,您需要两个轻量级 jquery 插件:

http://plugins.jquery.com/event.move/
http://plugins.jquery.com/event.swipe/

就是这样。玩得开心

【讨论】:

  • 我把它放在_setDimension 函数的末尾,它运行良好,感谢提示,这些插件很棒
  • sry 但它不起作用 =(
  • _setContent 函数似乎不再存在(我使用的是 2.1.5 版本),但是如上所述,将代码放在 _setDimension 函数的末尾,确实工作。不错的简单解决方案,谢谢:)
  • 像魅力一样工作!使用 Fancybox 2.1.5 版进行了尝试和测试!
  • 它对我有用!但我需要将添加到 fancybox.js 的代码更改为:" $(".fancybox-wrap").on('swipeleft', function() { F.next(); }); $(".fancybox-wrap" ).on('swiperight', function() { F.prev(); }); "
【解决方案2】:

老问题,但也许仍然相关。我使用称为“可拖动”的 jQuery UI 函数解决了它。

$(function(){
    $('.fancybox').fancybox({
        padding : 0,
        arrows: false,
        helpers : {
            thumbs : {
                width  : 150,
                height : 50
            }
        },
        onUpdate:function(){
            $('#fancybox-thumbs ul').draggable({
                axis: "x"
            });
            var posXY = '';
            $('.fancybox-skin').draggable({
                axis: "x",
                drag: function(event,ui){
                    // get position
                    posXY = ui.position.left;

              // if drag distance bigger than +- 100px: cancel drag function..
                    if(posXY > 100){return false;}
                    if(posXY < -100){return false;}
                },
                stop: function(){

              // ... and get next or previous image
                    if(posXY > 95){$.fancybox.prev();}
                    if(posXY < -95){$.fancybox.next();}
                }
            });
        }
     });
})

你可以在这里观看。 http://jsfiddle.net/VacTX/4/

【讨论】:

  • 有没有办法让常规的下一个/上一个按钮出现在桌面上,而在移动设备上出现可拖动的按钮?此外,当您拖得不够远并松开时,它不会回到原来的位置。
  • 嗨@arbitter,您可以在可拖动函数的停止函数中放置“$(this).animate({left: 0}, 500)”,以将图像移动到原始位置。对于下一个/上一个按钮,它很棘手。您必须检测移动/桌面设备并为此更改箭头选项。您可以在我更新的小提琴上显示的“后退”功能..jsfiddle.net/VacTX/20 用于移动设备检测我在这里发现了一些有趣的东西..github.com/miohtama/detectmobile.js 但我没有测试它。
  • 这不适用于手机和平板电脑,只是浪费时间检查它。
  • 但是添加一些像滑动桌面鼠标事件真的很棒 =) Ty.
  • @Hansinger 这将是完美的,但不幸的是不适用于移动设备和 iPad...知道我需要做什么才能使其在移动设备上运行吗?
【解决方案3】:

尝试以下 .net 教程链接:lightbox-responsive

换个试试照片滑动插件,真的不错,find it here

其他选项:

swipjs jQuery手机 jqtouch

【讨论】:

【解决方案4】:

最新版本(目前是版本 3 beta 1)支持滑动,并且可以正常工作,但希望最终版本会有很大改进。动画/过渡效果真的很慢。

http://fancyapps.com/fancybox/beta/

【讨论】:

  • 为什么你写这个,如果你不检查,bc i cheked and it is not WORK on pads and mobiles devisec!
  • v3 运行良好。 Jek-fdrv 不知道他在说什么
猜你喜欢
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多