javascript - 移动端 touchstart 问题
天蓬老师
天蓬老师 2017-04-11 11:03:23
[JavaScript讨论组]

首页我点击ul滑动,滑动的一定的距离松开后, 再start时候,left的值就为0了,start 并不没有设置 left 的值,为么会变呀????

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
怪我咯

题主方便贴完整代码吗?
更新:
题主你好,我看了你的代码。问题应该在 move 函数的逻辑。

    function move(e) {
        e.preventDefault();
        var moveX = e.changedTouches[0].pageX;
        // 改为ul.style.left = ul.offsetWidth + moveDistance + 'px';
        var moveDistance = moveX - startX;
       ul.style.left = moveDistance + 'px'
    }

首先说下 left 值变为 0 的原因。
move 函数里面
var moveDistance = moveX - startX;
ul.style.left = moveDistance + 'px';

当 moveDistance 为 0 时,left 也就为0 了。

我猜测你应该是想 left 改变 moveDistance 长度,而不是直接赋值为 moveDistance 。
即 ul.style.left = ul.offsetWidth + moveDistance + 'px';

最后补充下,你用递增实现动画是很不科学的,建议题主看看动画的实现,推荐使用requestAnimationFrame。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号