javascript - 向下滚动时更改样式(javascript)

标签 javascript jquery html css

我正在重建我的网页,让它更优雅,所以我决定在用户​​向下滚动时修改顶部栏,使其更小并隐藏其中的一些元素。我有向下滚动时触发的功能,但由于某种原因它什么也没做。

我的 HTML:

<div class="maindiv">
        <img src="media/cgaline.png" id="cgalinepic" class="cgalinepic"> 
        <a id="right-panel-link" href="#right-panel"><img src="media/menu.png" id="open_menu_button" width="50px" height="50px"></a>
        <h2 class="h1-3" id="h1-3">
            We are not in danger, we ARE the danger.
        </h2>
</div>

我不知道出了什么问题,因为我大部分时间都花在 php 上,我发现 javascript 有点难。

我也试过这样做:

$('#maindiv').style.height = "50px";

但是也没用。

我最终的 javascript 代码(感谢 Sagi 和 Ilya Sviridenko):

var div = $('.maindiv');
var pic = $('.cgalinepic');
var menu = $('.open_menu_button');
var text = $('.h1-3');

$(function(){
    var div = $('.maindiv');
    var pic = $('#cgalinepic');
    var menu = $('#open_menu_button');
    var text = $('#h1-3');

    $(document).scroll(function() {
        var lastScrollTop = 0;
        $(window).scroll(function(event){
        var st = $(this).scrollTop();
        if (st > lastScrollTop){
            div.css("height", "50px");
            pic.css({ width : "400px", height : "50px" });
            text.hide();
            menu.css("top", "0px");
        } else {
            div.css("height", "140px");
            pic.css({ width : "800px", height : "100px" });
            text.show();
            menu.css("top", "47px");
        }
        lastScrollTop = st;
        });
    });
});

最佳答案

只有在 DOM 准备就绪后,您才能使用 jQuery。像这样包装你的 JS 代码:

$(function(){
    ...
});

最终解决方案,使用 Sagi 代码:

$(function(){
    var div = $('#maindiv');
    var pic = $('#cgalinepic');
    var menu = $('#open_menu_button');
    var text = $('#h1-3');

    $(document).scroll(function() {
        div.css("height", "50px");
        pic.css({ width : "400px", height : "50px" });
        text.css("visibilty", "hidden");
        menu.css("top", "0px");
    });
});

关于javascript - 向下滚动时更改样式(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32539672/

相关文章:

jquery - Anythingslider 触摸滑动功能停止正常点击 IOS 和平板设备上的链接

javascript - ng-show 表示多个值

php - 将csv文件数据插入mysql表时遇到麻烦

javascript - 鼠标松开、鼠标按下功能的更快编码

javascript - 异步链接模式

javascript - 如何将 javascript 书签设置为主页?

javascript - 图像未渲染 - JavaScript、Ajax

javascript - 匹配字符串的一部分

javascript - 如何自动求和下拉菜单和单选选择上的值

html - 停止 CSS 层次结构