javascript - 使滑动过渡在两个方向上无限

标签 javascript css swipe

我有一个移动网站,希望能够左右滑动以在页面之间转换,但处于无限循环中。当第一页向左滑动时,应显示最后一页,当最后一页向右滑动时,应显示第一页。

怎样才能达到这样的效果呢? Here is my jsfiddle link .

var oUl = document.getElementById('test');
var aLi = oUl.getElementsByTagName('li');
    
var sX = 0;
var sLeft = 0;
var index = 0; 
var curLeft = 0;
var disX = 0;

oUl.addEventListener('touchstart', touchstart, false);

function touchstart(e) {
    e.preventDefault();
    sX = e.changedTouches[0].pageX;

    sLeft = oUl.style.transform ? -parseInt(/\d+/.exec(oUl.style.transform)[0]) : 0;
    oUl.style.transition = 'none';

    document.addEventListener('touchmove', touchmove, false);
    document.addEventListener('touchend', touchend, false);
}

function touchmove(e) {
    disX = e.changedTouches[0].pageX - sX;
    curLeft = sLeft + disX;
    oUl.style.transform = 'translateX(' + curLeft + 'px)';
}

function touchend(e) {
     if (disX > 100) { 
        if (index != 0) {
            index -= 1;
        }
    } 
    if (disX < -100) {
        if (index != aLi.length - 1) {
            index += 1;
        }
    }
    oUl.style.transition = '.5s';
    oUl.style.transform = 'translateX(' + -index*aLi[0].offsetWidth + 'px)';
}
body { margin: 0; }
.box { width: 100%; overflow: hidden; }
ul,li { margin: 0; padding: 0; list-style: none; }
ul { width: 500%; overflow: hidden; transition: .5s; }
li { width: 20%; float: left; }
li { font-size: 40px; color: #fff; text-align: center; line-height: 150px; }
li:nth-of-type(1) { background: orange; }
li:nth-of-type(2) { background: red; }
li:nth-of-type(3) { background: pink; }
li:nth-of-type(4) { background: green; }
li:nth-of-type(5) { background: #333; }
<div class="box">
    <ul id="test">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
</div>

最佳答案

我会尝试在第一个和最后一个“li”之间“滑动”内容

类似这样的事情:

$('.box li:first-child').html( $('.box li:last-child') )

不知道在你的元素中是否可行。祝你好运:)

关于javascript - 使滑动过渡在两个方向上无限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34302596/

相关文章:

javascript - 是否可以剪切部分视频并仅使用 html5 和 js 将其上传到服务器

javascript - 在 webgl 和 opengles 中渲染带有反射的三 Angular 形网格的问题

html - 计算风格被迫变成别的东西

javascript - ionic 在某些 div 元素上滑动回来,而不是带动画的 ionic View

android - 具有 4 向滑动手势的自定义 Android View

javascript - orderBy 未按预期工作

javascript - Codewars Challenge - 正面计数/负面总和

html - 并排响应图像和文本

javascript - jQuery Carousel 控件锁定到内容底部

android - MotionLayout - 单击布局时行为不正确