(jquery) Затемнение всего экрана и выделение раздела страницы? - PullRequest
32 голосов
/ 23 марта 2011

Как на скриншоте ниже.Я уверен, что кто-то делал это раньше!=)

Круг является бонусом, был бы очень рад решению, которое позволяет выделить данный "div"

only part of the screen highlighted

Ответы [ 5 ]

57 голосов
/ 23 марта 2011

См. Пример следующего здесь →

Нет необходимости в плагине.Это может быть выполнено с помощью очень небольшого кода jQuery, показывающего затемнение с выделенным div с z-индексом над ним:

$('.expose').click(function(e){
    $(this).css('z-index','99999');
    $('#overlay').fadeIn(300);
});

$('#overlay').click(function(e){
    $('#overlay').fadeOut(300, function(){
        $('.expose').css('z-index','1');
    });
});

Согласно следующему HTML & CSS ... просто добавьте expose класс для любого элемента, который вы хотите изолировать при нажатии:

<div class="expose">Some content</div>
<textarea class="expose">Some content</textarea><br />
<input type="text" class="expose" value="Some content" /><br />
<div id="overlay"></div>

.expose {
    position:relative;
}

#overlay {
    background:rgba(0,0,0,0.3);
    display:none;
    width:100%; height:100%;
    position:absolute; top:0; left:0; z-index:99998;
}

См. пример →

6 голосов
/ 15 января 2014

А как насчет использования свойства CSS outline ?

input[type="search"] {
    -webkit-appearance: textfield;
    background:url('icons.png') #fff no-repeat 5px -601px;
    padding:0 10px 0 32px!important;
    width:168px;
    outline: 0px rgba(0,0,0,0) solid;
    transition: outline-color .3s
}
input[type="search"]:focus{
    z-index:1000;
    position:relative;
    border:1px solid #f60;
    outline: 5000px rgba(0,0,0,.8) solid ;
}

, это применяет очень большой контур к сфокусированным входам с переходом затухания.

Пример:

enter image description here

6 голосов
/ 23 марта 2011

Посмотрите на Плагин jQuery Tool's Expose . Это, вероятно, то, что вы хотите.

4 голосов
/ 25 октября 2016

5 лет с тех пор, как вопрос был задан , но это может помочь людям, прибывающим из Google

Я разработал плагин для этого вопроса,

Вы можете получитьэто из: Хоп на Github

Hop Logo

Дайте мне знать ваши отзывы.

1 голос
/ 27 июня 2013

Я проиграл скрипку @ mVChr, чтобы выделить один блок, когда нажата другая кнопка.В настоящее время я использую это, чтобы выделить поле ввода после нажатия кнопки входа на новом сайте.

$('.expose').click(function(e){
    $('.lightbox').css('z-index','99999');
    $('#overlay').fadeIn(300);
});

$('#overlay').click(function(e){
    $('#overlay').fadeOut(300, function(){
        $('.expose').css('z-index','1');
    });
});

Модифицированный пример на основе кода @ mVChr

<div class="buttonbox expose">When clicked</div>
<div class="lightbox expose">This box lights up</div><br /><br />
<div id="overlay"></div>

.buttonbox {     
    cursor:pointer;
    float:left;
    color:#1792C7;
    border: 1px solid #1792C7; 
    padding:10px 16px;
    background-color:transparent;
    -webkit-transition: background linear .3s; 
    -moz-transition: background linear .3s; 
    -ms-transition: background linear .3s; 
    -o-transition: background linear .3s; 
    transition: background linear .3s; 
}

.buttonbox:hover { 
    text-decoration: none; 
    color: #fff; 
    background-color: #1792C7; 
}

.lightbox {     
    background:#fff;
    border:1px solid #0d0d0d;
    color: #0d0d0d;
    cursor:pointer;
    float:left;
    margin:0px 0px 0px 5px; 
    padding:10px 16px;
    text-align:center;
}

.expose {
    position:relative;
}

#overlay {
    background:rgba(0,0,0,0.5);
    display:none;
    width:100%; height:100%;
    position:absolute; top:0; left:0; z-index:99998;
}
...