欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jQuery遮罩层实例讲解

程序员文章站 2022-06-11 14:19:52
本文实例为大家分享了jquery遮罩层展示的具体代码,供大家参考,具体内容如下 1.1 背景半透明遮罩层样式 需要一个黑色(当然也可以其他)背景,且须设置为绝对定位,以...

本文实例为大家分享了jquery遮罩层展示的具体代码,供大家参考,具体内容如下

1.1 背景半透明遮罩层样式

需要一个黑色(当然也可以其他)背景,且须设置为绝对定位,以下是项目中用到的css样式:

/* 半透明的遮罩层 */
#overlay {
  background: #000;
  filter: alpha(opacity=50); /* ie的透明度 */
  opacity: 0.5; /* 透明度 */
  display: none;
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  z-index: 100; /* 此处的图层要大于页面 */
  display:none;
}

1.2 jquery实现遮罩

/* 显示遮罩层 */
function showoverlay() {
  $("#overlay").height(pageheight());
  $("#overlay").width(pagewidth());

  // fadeto第一个参数为速度,第二个为透明度
  // 多重方式控制透明度,保证兼容性,但也带来修改麻烦的问题
  $("#overlay").fadeto(200, 0.5);
}

/* 隐藏覆盖层 */
function hideoverlay() {
  $("#overlay").fadeout(200);
}

/* 当前页面高度 */
function pageheight() {
  return document.body.scrollheight;
}

/* 当前页面宽度 */
function pagewidth() {
  return document.body.scrollwidth;
}

1.3 提示框

遮罩的目的无非让人无法操作内容,突出提示框,而提示框可参考上面的制作,z-index比遮罩层更高便可。主要问题是,如何控制提示框在浏览器居中。

/* 定位到页面中心 */
function adjust(id) {
  var w = $(id).width();
  var h = $(id).height();
  
  var t = scrolly() + (windowheight()/2) - (h/2);
  if(t < 0) t = 0;
  
  var l = scrollx() + (windowwidth()/2) - (w/2);
  if(l < 0) l = 0;
  
  $(id).css({left: l+'px', top: t+'px'});
}

//浏览器视口的高度
function windowheight() {
  var de = document.documentelement;

  return self.innerheight || (de && de.clientheight) || document.body.clientheight;
}

//浏览器视口的宽度
function windowwidth() {
  var de = document.documentelement;

  return self.innerwidth || (de && de.clientwidth) || document.body.clientwidth
}

/* 浏览器垂直滚动位置 */
function scrolly() {
  var de = document.documentelement;

  return self.pageyoffset || (de && de.scrolltop) || document.body.scrolltop;
}

/* 浏览器水平滚动位置 */
function scrollx() {
  var de = document.documentelement;

  return self.pagexoffset || (de && de.scrollleft) || document.body.scrollleft;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。