2015-10-07 73 views
1

我正在設置一個頁面,其中包含調暗頁面部分的按鈕。我修改了一些我在這裏找到的代碼:http://www.jankoatwarpspeed.com/use-jquery-to-turn-off-the-lights-while-watching-videos/點擊打開和關閉CSS過濾器亮度

但是我在javascript/jQuery上很糟糕,我不確定如何讓它做我需要的。

這裏的腳本:

$(document).ready(function(){ 
    $("#shadow").css("height", $(document).height()).hide(); 
    $(".lightSwitcher").click(function(){ 
     $("#shadow").toggle(); 
     if ($("#shadow").is(":hidden")) 
      $(this).removeClass("turnedOff"); 
     else 
      $(this).addClass("turnedOff"); 
    }); 
}); 

而且這裏有一個的jsfiddle:http://jsfiddle.net/e2b7dxa0/

我想它,以便在單擊光開關在與「影子」 ID什麼變暗。現在,任何具有該ID的內容都會隱藏起來,直到單擊燈開關並且我希望它可以看到,無論開關是否打開。我只想讓開關切換CSS中的亮度過濾器。

另外,jQuery中有一些東西導致高度擴展到頁面的高度,我想刪除它。

+0

的高度是因爲'$(文件).height()' – hjpotter92

回答

2

將您的亮度過濾器放在單獨的類中,並在單擊該按鈕時將該類應用於#shadow對象。

$(document).ready(function() { 
 
    $(".lightSwitcher").on('click', function() { 
 
     $(this).toggleClass("turnedOff"); 
 
     $('#shadow').toggleClass('filter'); 
 
    }); 
 
});
.lightSwitcher { 
 
    position:absolute; 
 
    z-index:101; 
 
    background-image:url(http://i.imgur.com/pyMBQnZ.png); 
 
    background-repeat:no-repeat; 
 
    background-position:left; 
 
    outline:none; 
 
    text-decoration:none; 
 
    margin-left: 70%; 
 
} 
 
#lightswitch { 
 
    height: auto; 
 
} 
 
.filter { 
 
    -webkit-filter: brightness(50%); 
 
    -moz-filter: brightness(50%); 
 
    -o-filter: brightness(50%); 
 
    -ms-filter: brightness(50%); 
 
    filter: brightness(50%); 
 
} 
 
.turnedOff { 
 
    color:#ffff00; 
 
    background-image:url(http://i.imgur.com/nuKtnZZ.png); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a class="lightSwitcher"><img id="lightswitch" src="http://i.imgur.com/3nawaAf.png"></a> 
 

 
<div id="shadow"> 
 
    <img src="https://placeimg.com/320/240/nature"> 
 
</div>

+1

幾乎貼我的,但你打我給它。 –

+0

完美!謝謝。 –

1

http://jsfiddle.net/e2b7dxa0/2/

$(".lightSwitcher").click(function(){ 

     if ($("#shadow img").hasClass("brightness")){ 
      $("#shadow img").removeClass("brightness"); 
      $(this).removeClass('turnedOff') 
     } 

     else{ 
      $("#shadow img").addClass("brightness"); 
      $(this).addClass('turnedOff') 
     } 
    });