首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向下滚动时更改样式(javascript)

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

Stack Overflow用户
提问于 2015-09-12 14:00:22
回答 2查看 387关注 0票数 4

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

我的HTML:

代码语言:javascript
复制
<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有点困难。

我也试过这样做:

代码语言:javascript
复制
$('#maindiv').style.height = "50px";

但也不起作用。

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

代码语言:javascript
复制
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;
        });
    });
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-12 14:23:10

只有在DOM准备好之后才可以使用jQuery。将您的JS代码包装如下:

代码语言:javascript
复制
$(function(){
    ...
});

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

代码语言:javascript
复制
$(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");
    });
});
票数 3
EN

Stack Overflow用户

发布于 2015-09-12 14:05:03

您已经在使用jQuery了。

继续使用jQuery API

代码语言:javascript
复制
div.css("height", "50px");
pic.css({ width : "400px", height : "50px" });
text.css("visibilty", "hidden"); // did you mean to hide the text completly? If so use text.hide();
menu.css("top", "0px");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32539672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档