2015-10-07 6 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/

Я хотел бы это так, что-нибудь с «теневой» идентификатор тускнеет, когда переключатель света нажата. В настоящее время все с этим идентификатором скрыто до тех пор, пока не будет нажат переключатель освещения, и я бы хотел, чтобы он был видимым, включен или выключен переключатель. Я хочу, чтобы переключатель переключил фильтр яркости в 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') 
     } 
    }); 
Смежные вопросы