【问题标题】:How to hide a div when the position of another div is less than a certain value当另一个div的位置小于某个值时如何隐藏一个div
【发布时间】:2019-09-19 20:59:33
【问题描述】:

当#mobile-nav 位于左侧0vw 时,我试图隐藏#back。这是我目前所拥有的......

$(document).ready(function() { 
  var position = $("#mobile-nav").css("left", "0vw");
  if (position < 0vw) {
    $("#back").css("display", "none");
  } else {
    $("#back").css("display", "block");
  }
);

知道为什么这没有成功返回吗? 这是codepen的链接https://codepen.io/spittman/pen/pBqYON

【问题讨论】:

  • 在浏览器中打开控制台,你会明白为什么;)你的代码在这一行失败if (position &lt; 0vw) {,把它改成if (position &lt; 0) {。同样关闭ready函数应该是});
  • 首先你使用了css()的setter,所以position将持有一个jQuery对象,而不是一个数值。其次,即使它确实包含一个可以用来测试位置的值,position &lt; 0vw 在语法上也是不正确的
  • @RoryMcCrossan 感谢您的帮助。我是 javascript 和 jquery 的初学者,所以请原谅我的天真。这是我现在拥有的,不幸的是它仍然无法正常工作codepen.io/spittman/pen/pBqYON

标签: javascript jquery html css


【解决方案1】:

试试这个:

var position = parseInt($("#mobile-nav").css("left"));

    if (position <= 0) {
        $("#back").css("display", "none");
    } 
    else {
        $("#back").css("display", "block");
    }

【讨论】:

    【解决方案2】:

    试试这个

    $("ul ul").hide();
    
    
    $("li").click(function(event) {
      $(this).children('ul').toggle();
      event.stopPropagation();
    });
    
    $("li").click(function() {
      $(this).siblings().children().hide();
    });
    
    $(".nav-child-trigger").click(function(){
      $("#mobile-nav").animate({left: '-=100vw'});
    });
    
    $("#back").click(function(){
      $("#mobile-nav").animate({left: '+=100vw'});
      var position = $("#mobile-nav").position().left;
    
        if (position > 0) {
            $("#back").css("display", "none");
        } 
        else {
            $("#back").css("display", "block");
        }
    });
    
    
    $(document).ready(function(){ 
    
    
    });
    

    【讨论】:

      猜你喜欢
      • 2015-03-26
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      • 2013-03-03
      • 2021-12-30
      • 1970-01-01
      • 2013-09-06
      相关资源
      最近更新 更多