Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用setInterval更改背景颜色,并使用活动记录自动滚动页面_Javascript_Jquery_Html_Css_Scroll - Fatal编程技术网

Javascript 使用setInterval更改背景颜色,并使用活动记录自动滚动页面

Javascript 使用setInterval更改背景颜色,并使用活动记录自动滚动页面,javascript,jquery,html,css,scroll,Javascript,Jquery,Html,Css,Scroll,我试着做一行div,它会随着时间间隔闪烁,一次应该闪烁一个div。我已经做到了这一点 请看演示: var arr=$(“.box”);   无功电流=0;   函数bgChange(){ 如果(arr.length>0){ arr.removeClass(“主动”) arr.eq(当前).addClass(“活动”) 电流=(电流+1)%arr.length; }   }   设定间隔(bgChange,200) .active{ 背景色:红色; } 试验 试验 试验 试验 试验 试验 试验

我试着做一行div,它会随着时间间隔闪烁,一次应该闪烁一个div。我已经做到了这一点

请看演示:

var arr=$(“.box”);  
无功电流=0;  
函数bgChange(){
如果(arr.length>0){
arr.removeClass(“主动”)
arr.eq(当前).addClass(“活动”)
电流=(电流+1)%arr.length;
}  
}  
设定间隔(bgChange,200)
.active{
背景色:红色;
}

试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
Test
方法可用于获取当前元素上的坐标,然后可用于窗口

    var elem = arr.eq(current);
    elem .addClass("active");  
    //If element is not in view port
    if (elementInViewport2(elem.get(0)) == false) {
       $(window).scrollTop(elem.offset().top);  
    }       
var arr=$(“.box”);  
无功电流=0;  
函数bgChange(){
如果(arr.length>0){
arr.removeClass(“主动”)
var elem=arr.eq(电流);
要素addClass(“主动”)
if(elementInViewport2(elem.get(0))==false){
$(窗口).scrollTop(元素偏移量().top)
}
电流=(电流+1)%arr.length;
}  
}  
函数元素INVIEWPORT2(el){
var top=标高偏移;
var left=el.offsetLeft;
var宽度=el偏移网络宽度;
var高度=el离地高度;
while(el.offsetParent){
el=el.offsetParent;
顶部+=标高偏移;
左+=el.offsetLeft;
}
返回(
顶部<(window.pageYOffset+window.innerHeight)&&
左<(window.pageXOffset+window.innerWidth)&&
(顶部+高度)>window.pageYOffset&&
(左+宽)>window.pageXOffset
);
}
设定间隔(bgChange,200)
.active{
背景色:红色;
}

试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
测试
您可以检查当前高亮显示的元素是否不在视口中,并使用以下内容适当更新
滚动顶

if (arr.eq(current).offset().top > viewportBottom)
  $window.scrollTop(viewportBottom);
if (arr.eq(current).offset().top < $window.scrollTop())
  $window.scrollTop(viewportTop);

试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验
试验

测试
感谢您的回复。我很欣赏您的代码在一个场景中运行。但一旦记录到达页面可见部分的末尾,它就应该滚动页面。在你的代码中,它看起来像是页面首先滚动,一旦它到达末尾,就会添加活动类,并且可以看到div的颜色变化。非常感谢,你救了我一天。我也希望如此。@Pikkapikka让我知道你对此的想法,谢谢!谢谢,这个解决方案也很有效。但我只能接受一个答案,但我肯定会投票表决。