jQuery-inview只将类添加到视图中的第一个项
jQuery inview only add class to first item in view
我正在开发一个博客主题,该主题使用inview插件来使用J&K滚动,还可以将类应用于视图中的文章。唯一的问题是,由于我有一个分辨率很高的mac,一次查看的文章超过1篇,所以下面的脚本一次将类"inview"添加到(对我来说,通常是3篇文章)几篇文章中。有没有办法修改它,只在用户屏幕上的第一篇文章中添加类"inview"?从技术上讲,这可能不是页面上的第一篇文章,只是少数文章中的第一篇。感谢您的帮助。
$('article').each(function(){
$(this).bind('inview', function (event, visible) {
if (visible == true) {
$(this).addClass("inview");
}
else {
$(this).removeClass("inview");
}
});
});
如果我正确理解你的问题,我认为你可以在.each函数中添加一个索引参数。像这样:
$('article').each(function(index){
if( index == 0 )
{
$(this).bind('inview', function (event, visible) {
if (visible == true) {
$(this).addClass("inview");
}
else {
$(this).removeClass("inview");
}
});
}
});
这将把类"inview"添加到第一篇文章中。
您可以始终转到jquery.inview.js的第97行,其中显示
$element.data('inview', visiblePartsMerged).trigger('inview', [true, visiblePartX, visiblePartY]);
在此之前,添加
if ($element.prev(".inview").length < 1)
因此,它检查在要触发visible=true的事件"inview"的元素之前是否存在类为"inview"的元素。
相关文章:
- 使用数据上的角度更改设置集合的第一个元素的动画
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- 字母计数:返回重复字母数最多的第一个单词
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 如何使用Javascript在HTML表中查找第一个空行
- 分页:如何用AJAX加载第一个页面
- 全局标志仅与第一个匹配项匹配的Regexp
- 在离子态上加载多个视图
- 访问ng repeat中的第一个项目
- 用Javascript将焦点设置在select元素上会将第一个项目滚动到视图之外
- 从Web视图上显示的页面部分获取第一个元素
- AngularJS在第一个页面视图上没有加载
- JSON 数据未绑定到从 SAPUI5 应用中的第一个视图导航的视图中
- 添加多个分部视图,第一个缺少表单
- DurandalJs:一种通用解决方案,用于将焦点放在组合视图上的第一个输入元素上
- Ember.js新模型elem到视图中的第一个位置
- 我的第一个骨干模型/视图.我的思路对吗?
- AngularJS:在第一个查询返回成功(不是401响应)之前不要加载视图
- AngularJS谷歌地图不会在第一个视图上更新它的内容
- 根据周视图中的第一个和最后一个事件设置minTime和maxTime