繁体   English   中英

如何显示可见性:隐藏链接不可点击

[英]How to make a visibility:hidden link unclickable

我的问题是,当用户在网站上滚动时,我正在使导航栏品牌的一部分消失,但是它仍然留下一个可单击的大空白框。 通过CSS / JS / HTML实现此目的的最简单方法是什么?

这是一个小提琴: http : //jsfiddle.net/a1oaxkon/

-我的Javascript(基本上是在滚动浏览器时修改CSS)

$(function(){
$(window).scroll(function() {
    if ($(window).scrollTop() > 0) {
    $(".navbar").css({
        "background-color":"#3B3F48", 
        "border-bottom": "1px solid #313131", 
        "box-shadow": "0px 1px 2px #242424",
        "padding-top": "15px",
        "height": "75px"
        });
    $(".lname").css({
        "margin-left" : "-100px",
        "visibility" : "hidden",
        "pointer-events" : "none",
        "opacity" : "0",
        "z-index" : "-100",
        "transition" : "all 0.4s, font-size 10s",
        "width" : "0px"
    });
    $(".fname").css({
        "background-color" : "#E46849",
        "z-index" : "100"
    });
}
else {
    $(".navbar").css({
        "background": "none",
        "border": "none",
        "box-shadow":"none",
        "padding-top":"25px",
        "height":"100px"
    });
    $(".lname").css({
        "visibility" : "visible",
        "margin-left" : "-15px",
        "opacity" : "1",
        "z-index" : "-100",
        "width" : "auto",
        "transition" : "all 0.4s, font-size 0s",
        "font-size" : "34pt"
    });
    $(".fname").css({
        "background" : "none",
        "z-index" : "100"
    });

}
});

});

我的CSS:

.navbar {
    margin:0;
    padding:13px;
    padding-top:25px;
    padding-right:35px;
    height:100px;
    border:none;
    background:none;
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
}
.navbar-inverse .navbar-brand {
    color:white;
    font-size:34pt;
    transform:scale(1,1.25); 
    font-weight:700; 
    height:55px;
    padding:14px;
    padding-left:25px;
    width:auto;
    text-shadow: 1px 1px 1px #345667;
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
}
.lname {
    position:relative;
    color:black;
    width:auto;
    margin-left:-15px;
    z-index:1;
}
.fname {
    padding-bottom:8px;
    display: inline-block;
    height: 50px;
    width: 75px;
    border-radius: 7px;
    margin-top: -20px;
    padding-top: 15px;
    padding-left: 8px;
    margin-right:0;
    transition: all 0.3s;
    z-index:2;
}
.navbar-inverse .navbar-nav>li>a {
    color:white;    
}
body {
    background-color:#338BB7;
}

我的HTML

<nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="navbar-header">
        <a class="navbar-brand" href="#top">
        <span class="fname">N1</span> <span class="lname">LastName</span>
        </a>
 </nav>

    <div id="top"></div>
    <div style="height:1000px"></div>

我的小提琴: http : //jsfiddle.net/a1oaxkon/

使用属性display:none而不是visible:hidden将解决此问题。 我不确定是否会以任何方式影响您的CSS动画

好吧,如果您想动态地执行此操作,请使用以下解决方案之一:

$(".lname").on('mouseover',function(){
  if($(this).is(':hidden')){
     $(this).css('cursor','none');
     $(this).off('click');
   }
  else{
       $(this).css('cursor','inherit(or your css cursor)');
       $(this).on('click',your_function_for_click);
   }
})

您只需将左边距调整为-1000px即可解决该问题。 http://jsfiddle.net/a1oaxkon/3/

    $(".lname").css({
        "margin-left" : "-1000px",

暂无
暂无

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

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