导航栏监听页面滚动跟随 简单封装

slide(‘.wedding-title‘, ‘.expo-list‘, ‘change‘,‘.nav‘); //导航条  参数:导航栏父级, 被监听元素 , 导航改变样式,导航栏
function slide(navfather, tClass, activeClass,nav) {
    var $navfather = $(navfather),
        $nav = $(nav);
    $navfather.css({
        "position": ‘relative‘
    });
    var $navfatherOffset = $navfather.offset().top,
        $navfatherH = $navfather.height();
    var arrayH = [];
    $(tClass).each(function(i, list) {
        arrayH.push($(this).offset().top - $navfatherH * 3 / 2)
    });
    $nav.find(‘li‘).click(function(e) {
        e.preventDefault();
        var index = $(this).index();
        $(‘body,html‘).stop().animate({
            scrollTop: arrayH[index] + 10
        }, 200)

    });
     $(window).scroll(function(){
            if ($(window).scrollTop()>=$navfather.offset().top){
                $nav.css({‘position‘:‘fixed‘,‘zIndex‘:‘7‘});
            }else{
                $nav.css({‘position‘:‘absolute‘});
            }
        arrayH.forEach(function(h, i) {

            if ($(window).scrollTop() >= h) {
                $navfather.find(‘li‘).eq(i).addClass(activeClass).siblings(‘li‘).removeClass(activeClass);
            }
        })
    })
}

原文地址:https://www.cnblogs.com/wxyblog/p/12021573.html

时间: 2024-10-07 14:16:13

导航栏监听页面滚动跟随 简单封装的相关文章

react 监听页面滚动

html: // 如果使用typescript, 定义dom类型 private dom: HTMLDivElement | null // ReactJS中,对Div监听只需要绑定 onScrollCapture事件 <div style={{ flex: 1, height: '10000px', overflowY: 'scroll', overflowX: 'hidden', }} ref={dom => {this.dom = dom}} onScrollCapture={() =&

监听页面滚动事件

不知大家在前端开发实践中有没有做过这样一个效果,就是页面布局中有一个顶部通栏的搜索登录框,我们的需求就是当鼠标向下滚动时,顶部通栏始终固定在顶部,并且默认顶部是透明背景,而当页面滚动时,顶部通栏的透明度随着页面卷曲的高度增加而变大,当页面滚动距离超过某一个高度时,透明度就固定不变了.顶部通栏的固定很好实现,只需要令其position属性值为fixed即可,顶部通栏的透明度则通过opacity属性来设置.比较容易出错的地方是这里需要监听页面滚动事件,得到实时的页面滚动距离,从而判断其距离的大小作出

监听页面滚动及滚动到指定位置

两种监听页面滚动的方法 一.原生js通过window.onscroll监听window.onscroll = function() {//为了保证兼容性,这里取两个值,哪个有值取哪一个//scrollTop就是触发滚轮事件时滚轮的高度var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;console.log("滚动距离" + scrollTop);} 二.Jquery通过$(wind

ionic 监听页面滚动,点击停止滚动

类似今日头条,页面上有很多card,点击每个card跳转该card的详情页面.这里有一个问题,当我滚动页面时,会先后触发touchstart.touchmove.touchend,但是当touchend后,页面仍会因为惯性而继续滚动.这个时候,我想点击页面停止滚动,而不是跳转到某个card的详情页面. 原理很简单:设置一个状态,初始值为true,页面滚动时变为false,页面停止滚动,则恢复为true,只有这个值为true时,才能触发跳转事件,即进入card详情页面. 这里需要用到ionic的一

JQuery监听页面滚动总结

1.当前滚动的地方的窗口顶端到整个页面顶端的距离: var winPos = $(window).scrollTop(); 2.获取指定元素的页面位置: $(val).offset().top; 3.对页面滚动条滚动的监听:要放在页面加载的时候 $(window).scroll(function(event){ }); 4.设置滚动条到指定位置.$(window).scrollTop(offset).

JS监听页面滚动到底部事件

废话不说,直接上代码,放心我这个是最好的,直接放到js脚本里,直接生效: $(window).scroll(function(){ var scrollTop = $(this).scrollTop(); var scrollHeight = $(document).height(); var windowHeight = $(this).height(); if(scrollTop + windowHeight == scrollHeight){ clickMore(); } });

Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向

很多android应用的下拉刷新都是使用的pulltorefresh这个开源项目,但是它的扩展性在下拉刷新同时又上拉加载更多时会有一定的局限性.查了很多地方,发现这个开源项目并不能很好的同时支持下拉刷新和上拉加载更多.这个组件有个mode的属性,可以设置为both,即上下同时都可拉动.但是只设置这个属性的话,上拉与下拉产生的效果是完全一致的.所以要使用这个开源项目做到下拉刷新并同时可上拉加载更多,就需要在代码中进行一些处理. ==========================pulltoref

C# NanUI WinFormium监听页面加载开始\结束

个人博客 地址:https://www.wenhaofan.com/article/20190501213608 因为NanUI文档中仅介绍了Formium窗口的监听,但是没有WinFormium相关的文档,查看源码后才找到监听方法,特此记录一下 public partial class Form1 : WinFormium {public Form1(): base("http://res.app.local/asserts/index.html") { InitializeComp

聊天界面使用IQKeyboardManager导航栏及整个页面上移的解决方法

问题: 使用第三方库IQKeyboardManager时会使整个页面上移,导航栏页偏移出了显示范围.在聊天界面就会使得上面的消息看不到. 解决方法: 首先说明:在聊天界面使用IQKeyboardManager这个第三方库无法解决这个问题,至少我没找到解决办法.网上说的那些用ib创建UI,把控制器的view改成scrollview,或纯代码创建UI,重写loadView方法,然后把self.view = scrollview的解决方法会把布局搞乱.没有试,太麻烦.解决思路:在聊天页面禁用IQKey