Javascript 正在滚动删除div的内容

Javascript 正在滚动删除div的内容,javascript,jquery,html,css,Javascript,Jquery,Html,Css,使用jQuery,我确定最近的div(最可见的div)。当用户一秒钟都没有滚动时,它会将该div滚动到视图的中心。 这对我来说非常有效。这是一个片段: $(函数($){ $(函数(){ $(窗口).on('scroll',function(){ $('.divs div').html('.removeClass('most-visible').mostVisible().addClass('most-visible'); $(函数(){ $(窗口)。滚动(函数(){ clearTimeout(

使用jQuery,我确定最近的div(最可见的div)。当用户一秒钟都没有滚动时,它会将该div滚动到视图的中心。 这对我来说非常有效。这是一个片段:

$(函数($){
$(函数(){
$(窗口).on('scroll',function(){
$('.divs div').html('.removeClass('most-visible').mostVisible().addClass('most-visible');
$(函数(){
$(窗口)。滚动(函数(){
clearTimeout($.data(这是“滚动计时器”);
$.data(这是'scrollTimer',setTimeout(函数(){
var vpHeight=$(窗口).height();
var divHeight=$(“.divs div”).outerHeight();
var scrollOffset=(vpHeight-divHeight)/2;
$('html,body')。设置动画({
scrollTop:$(“div.most-visible”).offset().top-scrollOffset
}, 500);
console.log(“1s内不滚动”);
}, 1000));
});
});
});
});
函数getMostVisible($elements){
变量$element=$(),
视口高度=$(窗口).height(),
max=0;
$elements.each(函数(){
var visiblePx=getVisibleHeightPx($(this),视口高度);
如果(可视PX>最大值){
最大值=可见px;
$element=$(这个);
}
});
返回$element;
}
函数getVisibleHeightPx($element,viewportHeight){
var rect=$element.get(0).getBoundingClientRect(),
高度=垂直底部-垂直顶部,
可见={
top:rect.top>=0&&rect.top0&&rect.bottom视口高度&rect.top<0){
var absTop=数学绝对值(矩形顶部);
如果(absTop<高度){
//元素的一部分是可见的
visiblePx=高度-absTop;
}
}
返回visiblePx;
}
$.fn.mostVisible=函数(){
返回getMostVisible(此);
}
});
。divs div{
高度:120px;
宽度:300px;
利润率:10px自动;
边框:10px纯白;
不透明度:0.6;
}
最明显的{
背景色:#16a085;
过渡:.5s易进易出;
过渡延迟:1s;
}
html,正文{
身高:100%;
背景:rgba(17126104,1);
背景:莫兹径向梯度(中心,椭圆覆盖,rgba(17126104,1)0%,rgba(17126104,1)25%,rgba(1,81,54,1)100%);
背景:-webkit渐变(径向,中心,0px,中心,100%,颜色停止(0%,rgba(17126104,1)),颜色停止(25%,rgba(17126104,1)),颜色停止(100%,rgba(1,81,54,1));
背景:-webkit径向梯度(中心,椭圆覆盖,rgba(17126104,1)0%,rgba(17126104,1)25%,rgba(1,81,54,1)100%);
背景:-o-径向梯度(中心,椭圆覆盖,rgba(17126104,1)0%,rgba(17126104,1)25%,rgba(1,81,54,1)100%);
背景:-ms径向梯度(中心,椭圆覆盖,rgba(17126104,1)0%,rgba(17126104,1)25%,rgba(1,81,54,1)100%);
背景:径向梯度(中心椭圆,rgba(17126104,1)0%,rgba(17126104,1)25%,rgba(1,81,54,1)100%);
过滤器:progid:DXImageTransform.Microsoft.gradient(startColorstr='#117e68',endColorstr='#015136',GradientType=1);
}

使用
.html(“”)
将html设置为空。您可以使用
.html()
获取html内容。不确定为什么需要这样做,因为选择器已经在这样做了。

使用
.html(“”)
将html设置为空。您可以使用
.html()
获取html内容。不确定为什么需要这样做,因为选择器已经在这样做了。

这背后的原因是您使用以下代码清空
HTML
元素:

$('.divs div').html('.removeClass('most-visible').mostVisible().add‌​类(“最可见”‌​);

其中
.html(“”)
删除您的内容


谢谢,很高兴它对您有所帮助。:/p>这背后的原因是您使用以下代码清空了
HTML
元素:

$('.divs div').html('.removeClass('most-visible').mostVisible().add‌​类(“最可见”‌​);

其中
.html(“”)
删除您的内容


谢谢,很高兴它帮助了您。:)

因为您有
$('.divs div').html('.removeClass('.most-visible').mostVisible().addClass('most-visible')
where
.html(“”)
删除您的内容。哇。我向更深的地方走去。非常感谢!现在效果很好!你能为一些“自由名誉”做个回答吗使用
.html(“”)
将html设置为空。您可以使用
.html()
获取html内容。不确定为什么需要这样做,因为选择器已经在这样做了。@TobiasGlaus,很高兴它帮助了你。当然可以,你可以在下面查看我的答案。顺便说一下,谢谢!是的,我不久前为了测试smth添加了这个。在最终版本中不需要它。因为您有
$('.divs div').html('.removeClass('most-visible').mostVisible().addClass('most-visible')
where
.html(“”)
删除您的内容。哇。我向更深的地方走去。非常感谢!现在效果很好!你能为一些“自由名誉”做个回答吗使用
.html(“”)
将html设置为空。您可以使用
.html()
获取html内容。不确定为什么需要这样做,因为选择器已经在这样做了。@TobiasGlaus,很高兴它帮助了你。当然可以,你可以在下面查看我的答案。顺便说一下,谢谢!是的,我不久前为了测试smth添加了这个。它是