【问题标题】:Slide inner div left infinite loop滑动内部 div 向左无限循环
【发布时间】:2014-03-26 11:10:30
【问题描述】:

在过去的 3 个小时里,我一直在尝试玩 jquery,但没有运气就做到这一点,并让谷歌搜索所有可能的单词组合,看看我能找到类似于我需要的东西。我知道这会很简单,我的js很糟糕

目标:内部 div 需要无限循环向左滑动。滑块(外部 div)的宽度为 1040px,溢出隐藏。内部的宽度为 3198px,带有背景图像。我现在的目标是让内部 div 向左滑动相同的背景图像(360 度照片)无限重复,就好像它永远不会结束一样。下面是我的html标记

<div class="slider">
  <div class="inner"></div>
</div>

还有 CSS:

.slider {
position: relative;
width: 1040px;
height: 311px;
overflow: hidden;
}
.inner {
position: absolute;
right: 0px;
width: 3198px;
height: 311px;
background: url(img/VirtualTour_NormalLighting.jpg) no-repeat;
} 

我的最终目标:第一个图像基本上是死的(没有灯光或颜色),第二个图像有火并亮着。随着 div 向左滑动,图像的某些部分需要亮起,然后在其后面的旧部分需要返回灰度。希望这是有道理的。下面是两张图:

http://dreamsynk.com/img/VirtualTour_NormalLighting.jpg http://dreamsynk.com/img/VirtualTour_ExtraLighting.jpg

任何帮助都会很有帮助!一直在挣扎

经过一番谷歌搜索,我发现了这个:

// retrieve the element
 element = document.getElementById("ani");

// reset the transition by...
element.addEventListener("click", function(e){
e.preventDefault;

// -> removing the class
element.classList.remove("delay-1");

// -> triggering reflow /* The actual magic */
// without this it wouldn't work. Try uncommenting the line and the transition won't be     retriggered.
element.offsetWidth = element.offsetWidth;

// -> and re-adding the class
element.classList.add("delay-1");
}, false);

这正是我想要接受的,它需要在幻灯片结束时而不是在点击时出现。即使有超时功能或类似上述的功能也会在 40 秒后激活?

【问题讨论】:

  • 你能发布你的JS吗?另外我不完全理解你想要达到的目标,你能澄清一下你面临的确切问题吗?
  • 嘿,我用我找到的一些 js 更新了我上面的问题
  • dreamsynk.com/img/slider 正是我想要的示例,但它需要在最后重置。下载文件,看看它在动画延迟的情况下能否顺利运行。

标签: jquery html css slider slide


【解决方案1】:

这并不完美,但这是一个开始。你可以单独使用 CSS 来做到这一点。这是一个例子:

http://jsfiddle.net/24AEu/2/

这是一个带有供应商前缀的版本:http://jsfiddle.net/24AEu/4/

CSS

@keyframes move-bg {
    from {
        background-position: 0% 0%;
    }
    to {
        background-position: 150% 0%;
    }
}

@keyframes lightup {
    0% {
        opacity:0;
    }
    50% {
        opacity:1;
    }
    100% {
        opacity:0;
    }
}
.slider {
    position: relative;
    width: 1040px;
    height: 311px;
    overflow: hidden;
}
.inner {
    position: absolute;
    left:0;
    right:0;
    top:0;
    bottom:0;
    background-image: url(http://dreamsynk.com/img/VirtualTour_NormalLighting.jpg);
    background-position: 0% 0%;
    background-repeat: repeat;
    animation: move-bg 6s infinite;
    animation-delay: 0s;
    animation-play-state: running;
    animation-timing-function:linear;
}
.inner.light {
    background-image: url(http://dreamsynk.com/img/VirtualTour_ExtraLighting.jpg);
    opacity:0;

    background-position: 0% 0%;
    background-repeat: repeat;
    animation:move-bg 6s infinite, lightup 1s infinite;
    animation-delay: 0s;
    animation-play-state: running;
    animation-timing-function:linear;

}

HTML

<div class="slider">
    <div class="inner"></div>
    <div class="inner light"></div>
</div>

【讨论】:

  • 它缺少供应商前缀...我将附加它们。立即与 FF 合作
  • 你是忍者!我如何 +1 你或给你竖起大拇指?
  • 点击答案旁边的向上箭头,如果我回答了您的问题,您也可以接受。很高兴它有帮助:)
  • 我首先需要 15 个代表 :(
  • 感谢您接受 :) 不介意投票。我已经赞成你的回答,所以我不能帮你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-10
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多