zoukankan      html  css  js  c++  java
  • Jquery插件fancybox1.3.1在IE中图片显示问题

            JQuery的弹出窗口插件也很多了,例如Lightbox…这个我们介绍比较优秀的Plugin – Fancybox  ,主要特色有:

    • 显示HTML,swf,Iframe,ajax请求
    • 支持鼠标滚动显示图片
    • 支持阴影,放大效果
    • 自定义CSS与增加导航按钮

    官方有提供比较详细的API,与及How to Use .这里我们不介如何使用了,您可以参看官方网站。下面我们看一段示例代码:

       1:      var selectedid = $("select[name$=DdlSearchProfile]").val();
       2:              var selectedtxt = $("select[name$=DdlSearchProfile] :selected'").text();
       3:   
       4:              $("#editsp").fancybox({
       5:                  ajax: {
       6:                      type: "POST",
       7:                      data: "selectedid=" + selectedid + "&selectedtxt=" + selectedtxt,
       8:                      cache: false
       9:                  },
      10:                  autoDimensions: false,
      11:                   300,
      12:                  height: 125,
      13:                  scrolling: 'no',
      14:                  //onStart: OnStartCheck,
      15:                  onComplete: OnshowtxtForEdit,
      16:                  titleShow: false,
      17:                  enableKeyboardNavigation: false
      18:              });

            这里我们使用它的以ajax方式去load一个page.并传值。我们可以Server端取到相应的Data,如上面的Id,text. OnComplete是一个CallBack,熟悉JQuery应该知道。它提供了好几个CallBack,您可以对应具体的场景调用。

            我们接下面主要是解决一个在IE中Close按钮图片显示不出的问题。我们看到它的CSS使用的了AlphaImageLoader Filter,关于如何使用这个Filter你可以参考这篇POST

    一种方法是使用绝对Path,如:

       1:  AlphaImageLoader(src='http://yourdomain.com/js/fancybox/ fancy_loading.png' ..

    另一种方法是使用Javascript,打开jquery.fancybox-1.3.1.css,提到#fancybox-loading.fancybox-ie div 处替换成以下代码:

    .fancybox-ie #fancybox-close    { background: transparent; behavior: expression(this.runtimeStyle.filter?'':this.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ (function(){var t=document.getElementsByTagName('link');for(var i=0;i<t.length;i++){var h=t[i].href.split('?')[0];if(h&&/polaroid_gallery\\.css$/.test(h)){return h.replace('polaroid_gallery.css','');}} return '';})() +"Scripts/fancybox/fancy_close.png',sizingMethod='scale')"); }

    看上去有点儿funy, 在css使用Javascript.

             然后就可以了,这里我们使用的是IE 8.0.7600.16385。fancybox 1.31 的版本。最好的解决方案是实现自定义的样式,也不会有这样的问题。后面我们发面这个网站也在使用fancybox。可以参考:

    http://www.microsoft.com/express/windows/

    希望这篇POST对您开发有帮助。


    作者:Petter Liu
    出处:http://www.cnblogs.com/wintersun/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    该文章也同时发布在我的独立博客中-Petter Liu Blog

  • 相关阅读:
    【git】之常用命令
    VueJs
    如何做技术选型
    用户登录验证注意事项
    npm xss
    express-session
    ejs、jade和dust
    XMLHttpRequest.responseType
    JS对象字面量
    安装Angulr CLI
  • 原文地址:https://www.cnblogs.com/wintersun/p/1839833.html
Copyright © 2011-2022 走看看