JQuery boxy插件在IE中边角图片不显示问题的解决


Posted in Javascript onMay 20, 2015

JQuery boxy插件很好用,但也会出现一些问题,比如弹出框的边角在IE中不能显示。本博文将来解决这个问题。将boxy插件引用到项目中后会有一个boxy.css文件和jquery.boxy.js文件。在boxy.css文件中有给弹出框设置四个角图片的样式,如下图:

JQuery boxy插件在IE中边角图片不显示问题的解决

不做任何修改在Chrome浏览器下没有问题,如下:

JQuery boxy插件在IE中边角图片不显示问题的解决

在网上查了一些资料,说将css文件中的图片路径给位全路径可以解决问题,如下:

JQuery boxy插件在IE中边角图片不显示问题的解决

发现这样修改后并没有作用,运行后效果仍然如下:

JQuery boxy插件在IE中边角图片不显示问题的解决

有效的解决方法

将上面css截图的下半部分注释掉,如下图:

JQuery boxy插件在IE中边角图片不显示问题的解决

然后在jquery.boxy.js文件中的Boxy函数中添加一段脚本,下面贴出修改后的Boxy函数代码:

function Boxy(element, options) {
  
  this.boxy = jQuery(Boxy.WRAPPER);
  jQuery.data(this.boxy[0], 'boxy', this);
  
  this.visible = false;
  this.options = jQuery.extend({}, Boxy.DEFAULTS, options || {});
  
  if (this.options.modal) {
    this.options = jQuery.extend(this.options, {center: true, draggable: false});
  }
  
  // options.actuator == DOM element that opened this boxy
  // association will be automatically deleted when this boxy is remove()d
  if (this.options.actuator) {
    jQuery.data(this.options.actuator, 'active.boxy', this);
  }
  
  this.setContent(element || "<div></div>");
  this._setupTitleBar();
  
  this.boxy.css('display', 'none').appendTo(document.body);
  this.toTop();

  if (this.options.fixed) {
    if (jQuery.browser.msie && jQuery.browser.version < 7) {
      this.options.fixed = false; // IE6 doesn't support fixed positioning
    } else {
      this.boxy.addClass('fixed');
    }
  }
  
  if (this.options.center && Boxy._u(this.options.x, this.options.y)) {
    this.center();
  } else {
    this.moveTo(
      Boxy._u(this.options.x) ? this.options.x : Boxy.DEFAULT_X,
      Boxy._u(this.options.y) ? this.options.y : Boxy.DEFAULT_Y
    );
  }

  //fengwei add 2010-11-28
  //用于解决弹出框的圆角在ie中的显示问题
  if ($.browser.msie) {
    var setFilter = function(cls) {
      var obj = $(cls), ret = obj.css("background-image").match(/url\(\"(.+)\"\)/);
      if (ret == null || ret.length < 1) return;
      obj.css({
        "background": "none", "filter": "alpha(opacity=0)",
        "filter": "progid:DXImageTransform.Microsoft.
                       AlphaImageLoader(src='" + ret[1] + "')"
      });
    };

    setFilter(".top-left");
    setFilter(".top-right");
    setFilter(".bottom-left");
    setFilter(".bottom-right");
  }
  
  if (this.options.show) this.show();

};

修改好css和js文件后,再次运行程序,在IE6,7,8中均能正常弹出带边角的框了。

希望本文对您有所帮助。

Javascript 相关文章推荐
你的编程语言可以这样做吗?
Sep 07 Javascript
JavaScript中的函数重载深入理解
Aug 04 Javascript
javascript中定义类的方法详解
Feb 10 Javascript
Javascript页面跳转常见实现方式汇总
Nov 28 Javascript
深入理解MVC中的时间js格式化
May 19 Javascript
Vue.js学习示例分享
Feb 05 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
Apr 01 Javascript
jQuery Plupload上传插件的使用
Apr 19 jQuery
js 概率计算(简单版)
Sep 12 Javascript
javascript数组定义的几种方法
Oct 06 Javascript
vue组件详解之使用slot分发内容
Apr 09 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
Sep 15 Javascript
JS中的Replace方法使用经验分享
May 20 #Javascript
jquery使用经验小结
May 20 #Javascript
js实现字符串转日期格式的方法
May 20 #Javascript
JavaScript实现带标题的图片轮播特效
May 20 #Javascript
手机端页面rem宽度自适应脚本
May 20 #Javascript
jquery实现弹出层效果实例
May 19 #Javascript
jQuery结合ajax实现动态加载文本内容
May 19 #Javascript
You might like
提取HTML标签
2006/10/09 PHP
php 分页函数multi() discuz
2009/06/21 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
JS数字千分位格式化实现方法总结
2016/12/16 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
2019/08/29 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
js实现滚动条自动滚动
2020/12/13 Javascript
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
浅谈Python中数据解析
2015/05/05 Python
python相似模块用例
2016/03/04 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
应届生骨科医生求职信
2013/10/31 职场文书
商场活动策划方案
2014/01/24 职场文书
美国留学经济担保书
2014/05/20 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
人事专员岗位职责
2015/02/03 职场文书
致运动员的广播稿
2015/08/19 职场文书
严以律己学习心得体会
2016/01/13 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书