使用jQuery查找离滚动位置最近的HTML片段标识符
Finding nearest HTML fragment identifier to scroll position with jQuery
如何根据窗口的当前滚动位置找到最近的HTML片段标识符(hashtag href)?
我想通过JS/jQuery制作一个书签功能,捕捉用户点击书签按钮时所在的最近部分。我没有访问后端的权限,所以我不能添加任何挂钩/隐藏字段,但这并不重要,因为片段ID是我的挂钩。
我认为jQuery的.scroll()
处理程序可能有用,但我不确定如何定位"给定滚动位置的DOM内容",以了解是否出现了新的标识符。或者如果这是最好的方法。。。
想法?
类似的东西:
$('a [href]').filter(function() {
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(this).offset().top;
var elemBottom = elemTop + $(this).height();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
})
.first();
虽然在技术上不能回答我最初的问题,但这是我决定使用的更灵活的解决方案:
当用户点击"书签"时,jQuery将存储页面url,并在pos=X
上添加一个虚查询字符串,其中X是$('body').scrollTop()
的当前值。
当用户想要重新访问他的书签时,将加载存储的URL,插入的jQuery将检索pos
值并将页面滚动到书签位置。
这是理想的,因为它确实把用户放回了他/她停止的地方,一直到像素。
我很不理解你的问题,但要使用jquery在滚动上做一些事情,你可以试试这个。
$(document).ready(function(){
$(window).scroll(function(){
if ($(window).scrollTop() > 100){
/*you check if identifier has appeared here*/
}
});
});
相关文章:
- 具有服务器端呈现的HTML片段的主干模型
- KnockoutJS-打印html片段
- 使用 AngularJS 解析 HTML 片段
- 保留粘贴到 IE 中的 HTML 片段的条件注释
- 如何使用 JQuery 从另一个文件加载 HTML 片段
- Fancybox:如何滚动HTML片段,而不是具有相同效果的图像
- 如何重用HTML片段,但更改其中元素的ID
- 在libxmljs中附加html片段作为节点值
- 如何将HTML片段转换为另一个HTML片段
- 使用jQuery查找离滚动位置最近的HTML片段标识符
- Backbone.js-如何包含外部HTML片段
- 如何为拥有它的HTML片段提供初始数据'自己的控制器
- 我可以将HTML片段存储在不同的文件中,但可以通过JavaScript访问吗
- 如何存储HTML片段并稍后将其插入文档中
- 正在为HTML片段中的img标记设置baseUrl
- 将超长的html片段注入单页应用程序的最佳方式是什么
- 如何将带有html片段的javascript加载到现有的web应用程序中
- 访问通过Ajax服务的HTML片段中返回的JSON
- 将页面的HTML片段复制到剪贴板
- 从另一个html文件加载html片段