0

2つの小さな問題があります:1)Kilian Valkofのプラグインに基づくスクリプトを使用して、IE7/8/9でテキストシャドウを設定しました。それらがアニメーション化されているため、IEでマウスオーバーしてからマウスアウトすると、背後にブラックボックスが生成され、各文字のアニメーションが完了すると消えます。IEプラグインをコメントアウトすると、もちろんシャドウはIEでレンダリングされませんが、ブラックボックスの問題は解消されたため、2つのプラグインの間で少し助けが必要なことが起こっています。どうすればその黒いちらつきを止めることができますか?

これがJSfiddleです(削除済み)

2)テキストシャドウプラグインでより大きな幅を任意のspan.sl-w2に割り当てようとしています(コードコメント「UPDATEWIDTH」を参照)。スパンの幅は自動に設定されているので、どのように割り当てるのですか?つまり、元の幅+いくつかの数値ですか?textShadowプラグイン(変更済み)は次のとおりです。

/* jQuery textShadow plugin for IE
* Version 1.1 (26/02/2010)
* @requires jQuery v1.2+
*
* Copyright (c) 2008 - 2010 Kilian Valkhof (kilianvalkhof.com)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* MODIFICATIONS made **
*/
(function($) {
  $.fn.textShadowls = function(useroptions) {
   return this.each(function() {
    var obj = $(this);
    // obj.removeTextShadowls(); // Don't know why this is necessary? 
    var col = '#000000'; // %id=?somecolor?%       
    var blurrad = 3; // %id=shblur1%
    var gstr = 8; // %id=shx1%
    var text = "<span class='jQshadls'>" + obj.html() + "</span>";
    var pleft = 3 + 'px';
    var initwd2 = obj.width();  // Should pull width from .sl-w2? I think that's $(this)
    console.log('This Init Width:' + initwd2);        
    var wd = initwd2 + gstr + 'px !important';
    var defaults = {
      color: col,
      blur: blurrad,
      glowstr: gstr,
      opacity: 60
    };
    var options = $.extend(defaults, useroptions);
    options.color = (options.color.length == 4) ? options.color.replace(/#([0-9A-f])([0-9A-f])([0-9A-f])/i, '#$1$1$2$2$3$3') : options.color;
    var filtertext = "glow(strength="+options.glowstr+" color="+options.color+")blur(strength="+options.blur+" direction=45)blur(strength="+options.blur+" direction=90)blur(strength="+options.blur+" direction=135)blur(strength="+options.blur+" direction=180)blur(strength="+options.blur+" direction=225)blur(strength="+options.blur+" direction=270)blur(strength="+options.blur+" direction=315)blur(strength="+options.blur+" direction=360)progid:DXImageTransform.Microsoft.Alpha(opacity="+options.opacity+")";
    if($.browser.msie && options != "") {
      if (obj.is('.sl-w2')) {
        // obj.css({"zoom":"1"}).append(text);
        obj.append(text);  
        obj.children("span.jQshadls").css({
          "position":"absolute",
          "width":wd,  
          "padding-left":pleft,
          "z-index":"-1",
          "zoom":"1",
          "filter":filtertext,
          "-ms-filter":filtertext 
        });
        $('span.sl-w2').css({'width':wd, 'padding-left':pleft});// UPDATE WIDTH 
      } else {
        // obj.css({"zoom":"1"}).append(text);
        obj.append(text);  
        obj.children("span.jQshadls").css({
          "position":"absolute",
          "z-index":"-1",
          "zoom":"1",
          "filter":filtertext,
          "-ms-filter":filtertext 
        });
        //obj.parent().
      }   
    }
  });
};
$.fn.removeTextShadowls = function() {
  return this.each(function() {
    $(this).children("span.jQshadls").remove();
  });
};
})(jQuery);

ありがとう、ビル

バンプ:誰かがこれらを手伝ってくれますか?私は本当に試していますが、コーディングの助けが必要です:-)ビル

4

1 に答える 1

0

最終的にそれを理解しました;-) PixelRadiusとShadowOpacityでBlurを使用する必要がありました。

その後、ビル

于 2012-08-20T18:29:00.477 に答える