如何使滑块在触摸屏上可滚动?

29 浏览
0 Comments

如何使滑块在触摸屏上可滚动?

这是我的网站:

www.completefaq.com

主页上有一个幻灯片,我自己制作的。它会在8秒后自动切换幻灯片,也可以通过前进或后退按钮手动切换。但问题是,我希望在触摸屏上滑动时也能自动滚动。

非常感谢任何帮助。由于其他API(如JQuery)会导致网站速度变慢,所以我只能使用CSS、JavaScript、HTML和PHP。

0
0 Comments

如何使滑块在触摸屏上可以滚动?

问题的出现原因:

- 希望在触摸屏上能够实现滑块的滚动效果。

- 希望使用轻量级的脚本实现此功能。

解决方法:

- 使用以下脚本实现滑块的滚动效果:

var featured = document.getElementById("featured");
if( "ontouchstart" in window ) {
    var touchStart = function(evt) {
        var startTime = (new Date()).getTime();
        var startX = evt.changedTouches[0].pageX;
        var touchEnd = function(evt) {
            document.removeEventListener("touchend", touchEnd);
            var diffX = evt.changedTouches[0].pageX - startX;
            var elapsed = (new Date()).getTime() - startTime;
            console.log( "Swiped " + diffX + " pixels in " + elapsed + " milliseconds" );
            if( elapsed < 200 && Math.abs(diffX) > 50 ) {
                ( diffX < 0 ) ? slideright() : slideleft();
            }
        }
        document.addEventListener("touchend", touchEnd);
    };
    featured.addEventListener("touchstart", touchStart);
}

- 可以根据需要调整最小滑动时间(200毫秒)和最小滑动距离(50像素)。

- 如果需要更高级的手势识别功能,可以使用某种框架。

其他建议:

- 最好在"slideLeft"和"slideRight"函数中直接重置setInterval,这样可以避免在左右滑动后立即启动滚动。

希望对你有帮助!

0
0 Comments

如何在触摸屏上使滑块可滚动?

由于不想使用jQuery插件,由于各种触摸平台之间的差异,这将是一个相当复杂的问题,最终你可能会在尝试获取所需的抽象时陷入重复造轮子的境地。最重要的是,你的努力显然会取决于你想要实现的精度水平,所以建议你不要试图使图像对每次最小的触摸事件做出响应。

我认为你最好使用Tocca.js,这是一个非常有前景的独立脚本,旨在在现有设备中规范化触摸事件,非常轻量级(仅1kB)。

Hammer.js更准确,但在你的情况下可能会有点重。

QuoJS也不错,但它不仅仅专注于触摸事件。

你可能会发现这个Stack Overflow的问题和这个问题有趣。最后,你可以从现有的几个支持触摸的javascript图像滑块中获得灵感。

0