前端笔记

包括模块、常见问题、css效果、js效果等。仅用于方便查找,提高工作效率。

jquery实现页面元素(导航/广告)到达某个位置后位置固定的简易代码

怎么让页面元素在页面滚动到某个位置后固定,即便页面在滚动,目标元素仍然能出现在设定的位置呢?

《jquery实现页面元素(导航/广告)到达某个位置后位置固定的简易代码》

图一

《jquery实现页面元素(导航/广告)到达某个位置后位置固定的简易代码》

图二

效果如上图。这个之前用过stickup插件来实现。

现在我们自己写代码,更加简单的代码。我也只会简单的

    $(document).ready(function() {
    //element cache
    var root = $('html, body');
    //home page welcome pic and nav bar setting
    var v_height = $('.page-nav-color').offset().top;

    $(window).bind('scroll',function(){
        if($(window).scrollTop() > v_height ) {
            $('.page-nav-color').addClass('v-fixed-top');	
        } else{
            $('.page-nav-color').removeClass('v-fixed-top');
        }
    });	
});

js代码如上

很简单的思路,先获取目标元素距离页面顶部的距离 v_height = $(‘.page-nav-color’).offset().top;

再去获取当时页面位置距离页面滚动的距离 $(window).scrollTop()

如果 $(window).scrollTop() > v_height

给目标元素page-nav-color添加对应的class,否则移除 就 ok

 



打赏作者: 一分也是爱


您的支持就是我最大的动力
点赞

wujinyan进行回复 取消回复

邮箱地址不会被公开。 必填项已用*标注