太奇怪了吧!!

可以

function appendRight() {

  //alert("right");

  lastItem = itemsRight[urls.length - 1];

  firstItem = itemsRight[1];

  now = parseInt(($(lastItem).attr("id")).split("_")[1]);

  $(".slidePics").prepend(itemsRight[urls.length - 2]);

  moveRight();

  itemsRight.unshift(firstItem); //新元素添加到数组开始

  itemsRight.pop(); //移除最后一个元素

 }

太奇怪了吧!!!!!!!!!!!!!!!!!

不可以

function appendRight() {

  //alert("right");

  lastItem = itemsRight[urls.length - 2];

  firstItem = itemsRight[1];

  now = parseInt(($(lastItem).attr("id")).split("_")[1]);

  $(".slidePics").prepend(lastItem);

  moveRight();

  itemsRight.unshift(firstItem); //新元素添加到数组开始

  itemsRight.pop(); //移除最后一个元素

 }

完整的分步加载:

//起点值start
var start;

$(‘.slidePics‘).on("touchstart", getStart, this);
$(‘.slidePics‘).on("touchmove", getDirection, this);
$(‘.slidePics‘).on("touchend", updateUrl, this);

var urls = ["img/t4_01.jpg", "img/t4_02.jpg", "img/t4_03.jpg", "img/t4_04.jpg", "img/t4_05.jpg"];
var itemsLeft = [];
var itemsRight = [];
var left = false;
var firstItem = null;
var lastItem = null;
var now;

if (urls.length > 1) {
    for (var i = 1; i <= urls.length; i++) {
        var itemleft = ‘<div class="event_one animate" style="left:800px;" id="event_‘ + i + ‘">‘ +
            ‘<div class="imgInfo">‘ + i + ‘/‘ + urls.length + ‘</div>‘ +
            ‘<div class="mediaSelf">‘ +
            ‘<img src="‘ + urls[i - 1] + ‘">‘ +
            ‘</div>‘ +
            ‘</div>‘ +
            ‘</div>‘;
        var itemright = ‘<div class="event_one animate" style="left:-800px;" id="event_‘ + i + ‘">‘ +
            ‘<div class="imgInfo">‘ + i + ‘/‘ + urls.length + ‘</div>‘ +
            ‘<div class="mediaSelf">‘ +
            ‘<img src="‘ + urls[i - 1] + ‘">‘ +
            ‘</div>‘ +
            ‘</div>‘ +
            ‘</div>‘;
        itemsLeft.push(itemleft);
        itemsRight.push(itemright);
    }

    function getStart(e) {
        start = parseInt(e.targetTouches[0].pageX);
    }

    function getDirection(e) {
        var move = parseInt(e.targetTouches[0].pageX);
        if (start < move) {
            left = false;
        } else if (start > move) {
            left = true;
        }
    }

    function updateUrl() {
        //这个不能一起隐藏,会使初始化的3个div也被取消动画
        //$(".event_one").removeClass("animate");
        if ($(‘.event_one‘).length < urls.length) {
            if (left) {
                appendLeft();
            } else {
                appendRight();
            }
        } else {
            //alert("finished");
            if (left) {
                moveLeft();
            } else {
                moveRight();
            }
        }
    }
}

function appendLeft() {
    //alert("left");
    lastItem = itemsLeft[urls.length - 1];
    firstItem = itemsLeft[1];
    now = parseInt(($(firstItem).attr("id")).split("_")[1]);
    //if(now !== 2){
    $(".slidePics").append(itemsLeft[2]);
    //}
    moveLeft();

    itemsLeft.shift(); //移除最前一个元素
    itemsLeft.push(lastItem); //新元素添加到数组结尾

}

function appendRight() {
    //alert("right");
    lastItem = itemsRight[urls.length - 1];
    firstItem = itemsRight[1];
    now = parseInt(($(lastItem).attr("id")).split("_")[1]);

    $(".slidePics").prepend(itemsRight[urls.length - 2]);
    moveRight();
    itemsRight.unshift(firstItem); //新元素添加到数组开始
    itemsRight.pop(); //移除最后一个元素

}

function moveLeft() {
    var next = now > urls.length - 1 ? 1 : now + 1;
    var pre = now <= 1 ? urls.length : now - 1;
    console.log("pre", pre, "now", now, "next", next);

    //准备下一张
    $("#event_" + next).addClass("animate");
    $("#event_" + next).css("left", "800px");

    //移入
    //$("#event_"+now).css("left","800px");
    $("#event_" + now).addClass("animate");
    $("#event_" + now).css("left", "0px");

    //移出正常
    $("#event_" + pre).addClass("animate");
    $("#event_" + pre).css("left", "-800px");
    //经测试,以下两句即可避免使用全部remove
    $("#event_" + (pre - 1)).removeClass("animate");
    $("#event_" + (next + 1)).removeClass("animate");

    now++;
    if (now > urls.length) {
        now = 1;
    }
}

function moveRight() {
    var pre = now > urls.length - 1 ? 1 : now + 1;
    var next = now <= 1 ? urls.length : now - 1;
    console.log("pre", pre, "now", now, "next", next);

    //准备下一张
    $("#event_" + next).addClass("animate");
    $("#event_" + next).css("left", "-800px");

    //移入
    //$("#event_"+now).css("left","-800px");
    $("#event_" + now).addClass("animate");
    $("#event_" + now).css("left", "0px");

    //移出正常
    $("#event_" + pre).addClass("animate");
    $("#event_" + pre).css("left", "800px");
    //经测试,以下两句即可避免使用全部remove
    $("#event_" + (pre + 1)).removeClass("animate");
    $("#event_" + (next - 1)).removeClass("animate");

    now--;
    if (now < 1) {
        now = urls.length;
    }
}

额滴神啊!

就是由于上面那个奇怪的不同,搞了很多天。

时间: 2024-12-14 12:43:30

太奇怪了吧!!的相关文章

在MacBook Air 上装Win10的,反反复复的失败过程。

这个月初,一个女性朋友托我帮她装电脑,往MacBook Air上面装Windows 系统,原因是windows用的习惯,用起来顺手.然后用脚趾头考虑了一下,就一口答应下来了.难道这就是一个标准程序员的命么,修电脑,装系统,最近又多了一个任务,帮忙买手机.o(╯□╰)o 在家里,我先简单百度了一下Mac是什么鬼,然后顺便看了一下网上有一大堆苹果电脑装Windows 的教程,可见还是有很多的成功例子.也没就没有仔细去看,然后就放心大胆的在家里,装备个U盘,用大白菜做成U盘启动.顺便也幻想了一下,顺利

记5.28大促压测的性能优化&mdash;线程池相关问题

目录: 1.环境介绍 2.症状 3.诊断 4.结论 5.解决 6.对比java实现 废话就不多说了,本文分享下博主在5.28大促压测期间解决的一个性能问题,觉得这个还是比较有意思的,值得总结拿出来分享下. 博主所服务的部门是作为公共业务平台,公共业务平台支持上层所有业务系统(2C.UGC.直播等).平台中核心之一的就是订单域相关服务,下单服务.查单服务.支付回调服务,当然结算页暂时还是我们负责,结算页负责承上启下进行下单.结算.跳支付中心.每次业务方进行大促期间平台都要进行一次常规压测,做到心里

Eclipse无法导入现有项目的解决方法

最近准备复习之前写的Android代码时,发现很多项目都导入不进来. 百思不得其解,Eclipse删了重新下也没有解决,真浪费了我半天的时间. 后来我对每个不能导入的项目检查后发现,所有不能导入的项目的AndroidManifest.xml文件都是空的! 这也太奇怪了! 所以如果想让这些项目再运行起来的话,只能手动的修复AndroidManifest.xml文件咯. 版权声明:本文为博主原创文章,未经博主允许不得转载.

云计算之路-阿里云上-容器难容:自建docker swarm集群遭遇无法解决的问题

我们从今年6月开始在生产环境进行 docker 容器化部署,将已经迁移至 ASP.NET Core 的站点部署到 docker swarm 集群上.开始我们选用的阿里云容器服务,但是在使用过程中我们遭遇了恐怖的路由服务(acsrouting)路由错乱问题 —— 请求被随机路由到集群中的任一容器,虽然后来阿里云修复了这个问题,但我们对容器服务失去了信心,走上了用阿里云服务器自建 docker swarm 集群的道路. 用上自建 docker swarm 集群之后,本以为可以在云上容器中过上安稳的日

在.net中序列化读写xml方法的总结

在.net中序列化读写xml方法的总结 阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数组的做为数据成员的序列化 类型继承与反序列化 反序列化的实战演练 反序列化的使用总结 排除不需要序列化的成员 强制指定成员的序列化顺序 自定义序列化行为 序列化去掉XML命名空间及声明头 XML的使用建议 XML是一种很常见的数据保存方式,我经常用它来保存一些

hsdf -- 6.21 -- day6

差点忘写总结-- 这么快就到day6了啊 感觉前面写的总结都是苟屁,跟没有有什么区别-- 今天认真总结一下 最大的失误就是全程肝a题,最后还挂了-- 感觉今天方向偏了,由进行一次测试到仅仅是想要尽可能多的搞点什么事情-- 本末倒置了吧-- 然后就是没对拍--这个就不说了,py运行其他程序要学习一个-- 然后--也就这样了吧 发现猜性质不能仅仅大胆猜想,倒是不用验证,不过至少对拍一下-- 恩然后现场搞事情需要先写好暴力分,以前的习惯挺好的现在怎么忘了-- 是因为题太奇怪还是我太废了-- 感觉突然失

记5.28大促压测的性能优化—线程池相关问题

目录: 1.环境介绍 2.症状 3.诊断 4.结论 5.解决 6.对比java实现 废话就不多说了,本文分享下博主在5.28大促压测期间解决的一个性能问题,觉得这个还是比较有意思的,值得总结拿出来分享下. 博主所服务的部门是作为公共业务平台,公共业务平台支持上层所有业务系统(2C.UGC.直播等).平台中核心之一的就是订单域相关服务,下单服务.查单服务.支付回调服务,当然结算页暂时还是我们负责,结算页负责承上启下进行下单.结算.跳支付中心.每次业务方进行大促期间平台都要进行一次常规压测,做到心里

转载--编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)

阅读目录 建议16:易变业务使用脚本语言编写 建议17:慎用动态编译 建议18:避免instanceof非预期结果 建议19:断言绝对不是鸡肋 建议20:不要只替换一个类 回到顶部 建议16:易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP,Ruby,Groovy.Javascript等,这些入侵者都有一个共同特征:全是同一类语言-----脚本语言,它们都是在运行期解释执行的.为什么Java这种强编译型语言会需要这些脚本语言呢?那是因为脚本语言的三大特征,如下所示:

成长这事儿,不可不说-------Day36

事实上我一直都有一个观点,从我当年刚学抛物线那会就有:人生事实上就是一条轨迹,无非是一些点的集合.只是有些在低谷,有些在高峰,放形象了看,有些熠熠生辉,有些暗淡的几若消逝,有些人总喜欢回头数着过往的痕迹前行,仿佛这样才干感觉到踏实.仿佛这样才真的知道自己走过.而我.非常不幸就是这类人. 这漫长的岁月长河悄悄的冲淡着那些以前的记忆.可是总有那么一些,却让我无法忘却.时间抹不掉它,哪怕黯淡,哪怕细微.起点:故事之所以漂亮.是由于故 有了開始.而生活之所以精彩,是由于開始有了故事,每个启程我都倍加珍惜