easyui内的弹窗dialog不会随滚动条拖动而居中 这个怎么解决

2024-11-27 15:49:57
推荐回答(1个)
回答1:

  在使用dialog插件时,默认是屏幕居中的,但是当页面出现滚动条时,dialog并没有随着滚动条往下滚动,这时就需要用户滑动滚动条来定位dialog,这不人性化,在说出解决方案前先来普及一下jquery关于定位的几个方法
  复制代码 代码如下:

  //获取浏览器显示区域的高度
  $(window).height();
  //获取浏览器显示区域的宽度
  $(window).width();

  //获取页面的文档高度
  $(document.body).height();
  //获取页面的文档宽度
  $(document.body).width();

  //获取滚动条到顶部的垂直高度
  $(document).scrollTop();
  //获取滚动条到左边的垂直宽度
  $(document).scrollLeft();

  ok,下面问题就很好处理了,移动dialog有现成的函数,不过dialog本身没有move函数,但是dialog是继承自panel的,panel有move函数,因此可以调用panel的move函数来移动dialog
  复制代码 代码如下:

  $('#dlg').dialog('open');
  $("#dlg").panel("move",{top:$(document).scrollTop() + ($(window).height()-250) * 0.5});

  其中 $(window).height()-250,这里250px是dialog的宽度。