CSS / JavaScript Используйте Div, чтобы скрыть часть страницы серым цветом

Кто-нибудь знает, как с помощью JavaScript или CSS в основном затенять определенную часть формы / div в HTML?

У меня есть форма «Профиль пользователя», в которой я хочу отключить ее часть для члена «Не премиум», но хочу, чтобы пользователь видел, что скрывается за формой, и поместил поверх нее «Призыв к действию».

Кто-нибудь знает простой способ сделать это с помощью CSS или JavaScript?

Обновлено: я позабочусь, чтобы форма не работала на стороне сервера, поэтому будет достаточно CSS или JavaScript.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
43
0
77 772
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Добавьте это в свой HTML:

<div id = "darkLayer" class = "darkClass" style = "display:none"></div>

И это для вашего CSS:

.darkClass
{
    background-color: white;
    filter:alpha(opacity=50); /* IE */
    opacity: 0.5; /* Safari, Opera */
    -moz-opacity:0.50; /* FireFox */
    z-index: 20;
    height: 100%;
    width: 100%;
    background-repeat:no-repeat;
    background-position:center;
    position:absolute;
    top: 0px;
    left: 0px;
}

И, наконец, чтобы выключить и включить его с помощью JavaScript:

function dimOff()
{
    document.getElementById("darkLayer").style.display = "none";
}
function dimOn()
{
    document.getElementById("darkLayer").style.display = "";
}

Измените размеры darkClass в соответствии с вашими целями.

измените <div id = "darkLayer" class = "darkClass" display = "none"> </div> на <div id = "darkLayer" class = "darkClass" style = "display: none"> </div>

SeanDowney 19.03.2009 01:47

Не забудьте установить position: relative для родительского элемента этого компонента darkClass.

Jason Axelson 13.10.2015 02:50

Можем ли мы также отключить элементы управления кнопками внутри такого div.

Anand 18.12.2015 19:38

Это отлично сработало. И если вы все равно используете JQuery, вы можете сделать следующее, чтобы включать и выключать уровень: function dimOff() { $('#darkLayer').css('display', "none"); } и function dimOn() { $('#darkLayer').css('display', ""); }.

Greg Veres 05.08.2016 02:35

Отлично работает в Firefox, но не в Chrome = (

Tarquin 21.04.2017 07:04

В Chrome слой покрывает только часть экрана «над сгибом» - если вы прокручиваете вниз или браузер автоматически прокручивает вниз (он любит запоминать последнее место, где вы были до обратной передачи), все ниже сгиба не покрывается div.

HerrimanCoder 12.01.2019 20:18
Ответ принят как подходящий

Вы можете попробовать плагин jQuery BlockUI. Он довольно гибкий и очень простой в использовании, если вы не возражаете против зависимости от jQuery. Он поддерживает блокировку элементный уровень, а также оверлейное сообщение, что, кажется, вам нужно.

Код для его использования очень прост:

$('div.profileform').block({
    message: '<h1>Premium Users only</h1>',
});

Вы также должны иметь в виду, что вам все еще может потребоваться какая-то защита на стороне сервера, чтобы пользователи не премиум-класса не могли использовать вашу форму, поскольку людям будет легко получить доступ к элементам формы, если они что-то используют. как Firebug.

Превосходно!! это полезно для меня

imdadhusen 25.10.2011 14:39

Если вы полагаетесь на CSS или JavaScript, чтобы запретить пользователю редактировать часть формы, это можно легко обойти, отключив CSS или JavaScript.

Лучшим решением может быть представление нередактируемой информации вне формы для не-премиум-членов, но включение соответствующих полей формы для премиум-членов.

правда, вы можете использовать для этого файлы cookie php.

tetris 27.03.2011 07:35

With opacity


//function to grey out the screen
$(function() {
// Create overlay and append to body:
$('<div id = "ajax-busy"/>').css({
    opacity: 0.5, 
    position: 'fixed',
    top: 0,
    left: 0,
    width: '100%',
    height: $(window).height() + 'px',
    background: 'white url(../images/loading.gif) no-repeat center'
    }).hide().appendTo('body');
});


$.ajax({
    type: "POST",
    url: "Page",
    data: JSON.stringify({ parameters: XXXXXXXX }),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    beforeSend: function() {
        $('#ajax-busy').show();
    },
    success: function(msg) {
        $('#ajax-busy').hide();

    },
    error: function() {
        $(document).ajaxError(function(xhr, ajaxOptions, thrownError) {
            alert('status: ' + ajaxOptions.status + '-' + ajaxOptions.statusText + ' \n' + 'error:\n' + ajaxOptions.responseText);
        });
    }
});

Другие вопросы по теме