Javascript 如何防止函数外部的链接在滚动时触发它
这似乎是一个容易解决的问题,但似乎无法解决。我有一个表,每当你在上面滚动时,它就会产生一个固定的标题。但是,它工作得很好,在页面顶部附近有一个未连接的链接,通过jquery将光标滚动到页面底部,直到它碰到锚。因此,它会快速移动到桌面上,生成固定菜单,然后在到达锚后,固定菜单尴尬地在那里停留一两秒钟,然后消失 我试图通过禁用点击链接的功能来防止这种情况。我试过e.preventDefault(),但没有乐趣。这是提琴和代码(因此,当您单击链接时,要防止出现固定的“标题/说明”行)Javascript 如何防止函数外部的链接在滚动时触发它,javascript,jquery,Javascript,Jquery,这似乎是一个容易解决的问题,但似乎无法解决。我有一个表,每当你在上面滚动时,它就会产生一个固定的标题。但是,它工作得很好,在页面顶部附近有一个未连接的链接,通过jquery将光标滚动到页面底部,直到它碰到锚。因此,它会快速移动到桌面上,生成固定菜单,然后在到达锚后,固定菜单尴尬地在那里停留一两秒钟,然后消失 我试图通过禁用点击链接的功能来防止这种情况。我试过e.preventDefault(),但没有乐趣。这是提琴和代码(因此,当您单击链接时,要防止出现固定的“标题/说明”行) // top
// top edge of table
var element_menu_hdr = $(".row-1").offset().top;
var element_menu_end_check = $(".row-12").offset().top;
$(window).on("scroll", function fixmenu() {
var y_scroll_pos = window.pageYOffset;
var scroll_menu_hdr = element_menu_hdr;
var scroll_menu_end_check = element_menu_end_check;
if(y_scroll_pos >= scroll_menu_hdr) {
if($('.affix').length === 0){
$('.row-1.odd').wrap('<table class="tablemain affix view"></table>');
}
} else if (y_scroll_pos < scroll_menu_hdr) {
$('.tablemain.affix.view').contents().unwrap();
} else {
}
});
// bottom edge of table
var element_menu_end = $(".row-12").offset().top;
$(window).on("scroll", function fixmenubtm() {
var y_scroll_pos2 = window.pageYOffset;
var scroll_menu_end = element_menu_end;
if(y_scroll_pos2 > scroll_menu_end) {
$('.tablemain.affix.view tbody').contents().unwrap();
} else {
}
var myVar = y_scroll_pos2;
console.log(myVar, "y_scroll_pos2");
var myVar2 = element_menu_end;
console.log(myVar2, "element_menu_end");
});
jQuery(document).ready(function($) {
$(".scroll").click(function(event){
event.preventDefault();
$('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
});
});
//表的上边缘
var element_menu_hdr=$(“.row-1”).offset().top;
变量元素\菜单\结束\检查=$(“.row-12”).offset().top;
$(窗口)。打开(“滚动”,功能菜单(){
变量y_scroll_pos=window.pageYOffset;
var scroll\u menu\u hdr=元素\u menu\u hdr;
var scroll\u menu\u end\u check=元素\u menu\u end\u check;
如果(y滚动位置>=滚动菜单hdr){
如果($('.affix')。长度===0){
$('.row-1.odd')。换行('';
}
}否则如果(y\U滚动位置<滚动菜单\U hdr){
$('.tablemain.affix.view').contents().unwrap();
}否则{
}
});
//桌子底边
变量元素菜单结束=$(“.row-12”).offset().top;
$(窗口).on(“滚动”,函数fixmenubtm(){
var y_scroll_pos2=window.pageYOffset;
变量滚动菜单结束=元素菜单结束;
如果(y\u滚动\u位置2>滚动\u菜单\u结束){
$('.tablemain.affix.view tbody').contents().unwrap();
}否则{
}
var myVar=y_scroll_pos2;
log(myVar,“y_scroll_pos2”);
var myVar2=元素菜单结束;
log(myVar2,“元素菜单结束”);
});
jQuery(文档).ready(函数($){
$(“.scroll”)。单击(函数(事件){
event.preventDefault();
$('html,body').animate({scrollTop:$(this.hash.offset().top},500);
});
});
如果你能把它放在jsfiddle或其他东西上,让我们看到它,那将非常有帮助。另外,如果您可以删除图像,这样我们就不需要模拟png.Good调用,只需添加fiddle(w/精简代码,以便更容易调试)。谢谢你的提示。如果你能把它放在jsfiddle上或者别的什么东西上,这样我们就可以看到它了。另外,如果您可以删除图像,这样我们就不需要模拟png.Good调用,只需添加fiddle(w/精简代码,以便更容易调试)。谢谢你的提示。