1

设置我有一个带有 5 个以上 div 的全屏水平滑块,当您单击锚链接时,它会向左移动。我有一些jquery的基本知识,并且确实尝试过使用(scrollLeft)。但是 div 是包装器 div 隐藏在流中,并没有真正去任何地方。

目标是在容器 div 成为当前容器时为容器 div 内的内容设置动画,并在对不同的 div 执行动画时撤消动画。

问题:我可以播放动画,但无法控制它何时开始。


的HTML

    <div class="contentItem" id="content2">
    <div id="top-box"></div>
    <div id="bottom-box"></div>
    </div>

    <div class="contentItem" id="content3"></div>

    <div class="contentItem" id="content4"></div>
    <div class="contentItem" id="content5"></div>

javascript

var theWidth;
var theHeight;
var currentContent = 0;

$(window).resize(function () {
  sizeContent();
});

$(window).ready(function () {
sizeContent();
});

function sizeContent() {
    theWidth = $(window).width();
    theHeight = $(window).height();
    sizeContentItems();
    setLeftOnContentItems();
    sizeContentWrapper(theWidth, theHeight);
    moveContent(currentContent, theWidth);
    changeSelected(currentContent);
}

function sizeContentItems() {
    $(".contentItem").css('width', theWidth);
    $(".contentItem").css('height', theHeight);
}

function setLeftOnContentItems() {
    var contentCount = 0;
    $(".contentItem").each(function (i) {
        contentCount += i;
        $(this).css('left', i * 990); //slider contern hight
    });
}

function sizeContentWrapper(width, height) {
    $("#contentWrapper").css('width', width);
    $("#contentWrapper").css('height', height);
}

function moveContent(i, width) {
    $("#contentWrapper").scrollLeft(i * width);
}

function changeSelected(i) {
    $(".selected").removeClass("selected");
    $("li:eq(" + i + ") a").addClass("selected");
}

function scrollContentNext() {
    scrollContent(currentContent + 1);
}

function scrollContent(i) {
    i = checkMax(i);
    scrollLogo(i);
    scrollTriangle(i);
    changeSelected(i)
    currentContent = i;
    $("#contentWrapper").animate({ scrollLeft: i * 990 }, 400); // how far to go
}

function scrollLogo(i) {
    var left = (i * +200);
    $("#logo").animate({ left: left }, 1000);
}

function scrollTriangle(i) {
    var left = (i * -300);
    $("#triangle").animate({ left: left }, 700);
}

// **my edit**

function scrollbox(i) {
var i = currentContent;
if ( currentContent = 2) {
    $("#bottom-box").stop().animate({'margin-top': '200px'}, 1500);
}
}


function checkMax(i) {
    var maxItems = $("li").length;
    if (i >= maxItems) {
        return 0;
    }
    return i;
}
4

0 回答 0