最近の仕事で、Web サイトのコードをすべて書き換える必要があったので、担当者からオンライン プラグインを使用しないように言われました。大草原を疾走する馬の要件~~~
まず比較的単純な関数を実装します:
要件: Web ページのマスク レイヤー/ポップアップ レイヤー、IE6 と互換性あり
幸いなことに、以前に js バージョンを上手に収集したので、将来使用できるようにそれを jQuery プラグインに書き直しました。
もうでたらめも検閲も真実もありません!
/**********************************
* @name Layer ブラウザ間互換性プラグイン v1.0
*** ****************************/
; (function($){
$.fn.layer = function(){
var isIE = (document.all) ? true : false;
var isIE6 = isIE && !window.XMLHttpRequest ;
var 位置 = !isIE6 ? : "絶対";
var コンテナボックス = jQuery(this); :"ブロック ","位置":位置 ,"上":"50%","左":"50%","マージン-上": -(containerBox.height()/2) "px"," margin-left ": -(containerBox.width()/2) "px"});
varlayer=jQuery("
");
layer.css({ "width" :"100%","height":"100%","position":position,"top":"0px","left":"0px","background-color":"#000" ,"z -index":"9998","opacity":"0.6"});
jQuery("body").append(layer);
functionlayer_iestyle(){
var maxWidth = Math.max (document.documentElement.scrollWidth, document.documentElement.clientWidth) "px";
var maxHeight = Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) "px"; .css( {"width" : maxWidth , "height" : maxHeight });
}
functioncontainerBox_iestyle(){
var marginTop = jQuery(document).scrollTop -containerBox.height()/ 2 "px" ;
var marginLeft = jQuery(document).scrollLeft -containerBox.width()/ 2 "px";
containerBox.css({"margin-top" : marginTop , "margin-left" : marginLeft }) ;
}
if(isIE){
layer.css("filter","alpha(opacity=60)");
}
if(isIE6){
layer_iestyle ();
containerBox_iestyle();
jQuery("window").resize(function(){
layer_iestyle();
レイヤー.click( function(){
containerBox.hide();
jQuery(this).remove();
})(jQuery); >
はは、とても単純なことではありませんが、ここに大きなバグがあります。IE6 は透明な背景色をサポートできないため、IE6 の表示の下に大きな黒いたわごとが表示されます。 ~
次に、
の使用法について説明します。