繁体   English   中英

在 Javascript 中,滚动时隐藏 div 并在鼠标悬停时显示它

[英]In Javascript, Hiding a div when scrolling and showing it on mouseover

登录后,我正在寻找类似LinkedIn标题功能的解决方案。

  1. 标题固定在顶部。

  2. 标题后的一个 div(.topBlocks),滚动后应隐藏并显示-使用以下代码完成

$(window).scroll(function(){
    if ($(this).scrollTop() > 0) {
        $('.topBlocks').fadeOut("slow", 0);     
    } else {
        $('.topBlocks').fadeIn();
    }
});
  1. 内容向下滚动后......并且在标题(.topBlocks)div的moseover上应该隐藏和显示而不移回内容......并重置css

我已经这样做了...

HTML :

<header>some content goes here, height is fixed 33px </header>

<section>
    <div class="topBlocks"> some content goes here, height is fixed 123px, width 635</div>
    <div class="wrapper">
        <div class="fixedLeftSection"></div>
        <div class="stickyListWrap"> blog type content, so it scrollable </div>
    </div>
</section>

CSS :

header {
    width: 100%;
    background: #474747;
    min-height: 33px;
    padding: 11px 0;
    position: fixed;
    top: 0;
    z-index: 1000;
}
.wrapper {
    width: 940px;
    margin: auto;
    padding: 0 10px;
}
.topBlocks {
    width: 635px;
    margin: auto;
    background: #e7e7e7;
    height:123px;
}
.fixedLeftSection {
    position: fixed;
    top: 85px;
}
.stickyListWrap {
    margin-top: 30px;
}

Javascript 如下用于标题悬停隐藏和显示

var hoverMenu = $('.topBlocks'),
hoverSpace = $('header'),
secWrap = $('#mainSectionWrap');

$(window).scroll(function () {
    if ($(this).scrollTop() > 0 && !$('header').hasClass('open')) {
        $('.topBlocks').fadeOut("slow", 0);
    } else {
        $('.topBlocks').fadeIn();
    }
});

$('header').mouseover(function (e) {
    if ($(window).scrollTop() > 0) {
        e.stopPropagation();
        $('.topBlocks').addClass('testThing');
        $('.topBlocks').css("display", "block");
    }
});

$('.topBlocks').mouseleave(function (e) {
    if ($(window).scrollTop() >= 0) {
        e.stopPropagation();
        $('.topBlocks').css("display", "none");
        $('.topBlocks').removeClass('testThing');
    }
});             

我尝试重建Linkedin header的效果,不知道能不能帮到你。

$(window).scroll(function() {
    if($(this).scrollTop() == "0") {
        $('#hiddenHeader').show();
    } else {
        $('#hiddenHeader').hide();
    }        
});

$('#header').mouseenter(function() {
    $('#hiddenHeader').css("top", "50px").show();
}).mouseleave(function() {
    if($(window).scrollTop() != "0") {
        $('#hiddenHeader').hide();
    }
});

http://jsfiddle.net/sing0920/wM7w2/

试试这个

<div class="fixedhead">header tag with</div>
<div class="item">red div1 red div1 red div1 red div1
    <br/>
    </br/>red div1 red div1 red div1 red div1</div>

css

.fixedhead {
    position: fixed;
    top: 0;
    width: 100%;
    height:60px;
    background-color:green;
    z-index: 999;
}
.item {
    background-color:red;
    margin: 60px auto 0;
    width: 100%;
    height:510px;
}

小提琴参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM