CSS / JavaScript使用Div来灰色部分的页面

有没有人知道用JavaScript或CSS的方式基本上灰色HTML / HTML格式的某个部分?

我有一个“ 用户资料 ”表单,我想禁用“ 非高级 ”成员的一部分,但希望用户查看表单后面的内容,并在其上放置“ 呼叫 ”。

有没有人知道一个简单的方法来做到这一点,通过CSS或JavaScript?

编辑:我将确保表单不能在服务器端工作,所以CSS或JavaScript就足够了。

你可以试试jQuery BlockUI插件。 如果你不介意jQuery的依赖性,它非常灵活,使用起来非常简单。 它支持元素级别的阻塞以及覆盖消息,这似乎是你所需要的。

使用它的代码非常简单:

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

您还应该记住,您可能仍然需要某种服务器端的保护措施,以确保非高级用户不能使用您的表单,因为如果他们使用某些东西,人们可以很容易地访问表单元素像Firebug。

添加到您的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; } 

最后,用JavaScriptclosures它:

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

更改darkClass的尺寸以适应您的目的。

如果您依靠CSS或JavaScript来阻止用户编辑表单的一部分,那么可以通过禁用CSS或JavaScript来避免这种情况。

更好的解决scheme可能是在非高级会员的表单之外提供不可编辑的信息,但是包括高级会员的相关表单字段。

 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(..http://img.dovov.comloading.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); }); } });