检测位置并隐藏元素

时间:2014-02-17 13:03:07

标签: javascript jquery css

我正在尝试隐藏按钮,而div的样式定位为0.

要解释的整个JS代码是:

$('#left-button').click(function() {
      event.preventDefault();
      $('#myTab').animate({
        left: "+=200px"
      }, "fast");

   });

上面的代码工作。如果我点击按钮(左键),“mytab”div就会向左移动。现在,当#myTab的样式为“left:0”时,我想要隐藏#左键。

我试过了:

if ($('#myTab').css('left') == '0') {

   $('#left-button').style.display = "none";

     }

基本风格是

#myTab { width:300px; height:300px; position:relative; left:0; background:#777 }

#left-button {width:200px; height:200px; background:#ccc; }

没有调试错误但没有任何反应。我能做什么? 如果有另一种方法而不是Js,请告诉我。

非常感谢你。

http://jsfiddle.net/SgMDa/

4 个答案:

答案 0 :(得分:2)

您刚刚错过了单位价值px

if ($('#myTab').css('left') == '0px') {
   $('#left-button').hide();
}

使用.hide()代替style.display = "none";

Working Fiddle

答案 1 :(得分:2)

您的代码中的主要问题是使用行$('#left-button').style.display = "none";,并且您在if条件if ($('#myTab').css('left') == '0') {

中错过了'px'

if应为if ($('#myTab').css('left') == '0px') {

$ object返回jQuery包装的数组/对象,您尝试访问的是实际的DOM元素,因此您有两个选项来访问DOM元素:

<强> 1。使用jQuery方法hide()

 $('#left-button').hide();

<强> 2。使用DOM属性显示

$('#left-button')[0].style.display = "none";

注意:

  

jQuery Object:The Wrapped Set:Selectors返回一个jQuery对象   被称为“包裹集”,这是一种类似于阵列的结构   包含所有选定的DOM元素。你可以迭代   包装集像数组或访问单个元素通过   索引器(例如$(sel)[0])。更重要的是,您也可以申请   jQuery针对所有选定元素进行操作。

Official information about jQuery Object

答案 2 :(得分:1)

我认为这就像你从左边获得价值,尝试使用偏移功能

if ($('#myTab').offset().left == 0) {
   $('#left-button').hide();
}

答案 3 :(得分:0)

.css以px为单位进行测量,因此您应该尝试:

if ($('#myTab').css('left') == '0px') {
   $('#left-button').style.display = "none";
}