1

次のように、ハイスライドの「読み込み」を中央に配置するのが好きです。

.highslide-loading {
  display: block;
  position:fixed;
  top:50%;
  left:50%;
  height:32px;
  width:32px;
  padding: 24px;
  margin:-40px 0 0 -40px;
  text-indent:-9999em;
  background:#FFFFFF url(img/hslide_loader_white.gif) 50% 50% no-repeat;
  -webkit-box-shadow:0 0 5px 0 rgba(0, 0, 0, 0.75);
  box-shadow:0 0 5px 0 rgba(0, 0, 0, 0.75);
  -webkit-border-radius: 3px;
  border-radius: 3px;
}

ただし、highslide スクリプトは次のようなインライン スタイルを出力します。

element.style {
  left: 134px;
  opacity: 0.9;
  position: absolute;
  top: -9999px;
  z-index: 1003;
}

ローディング オブジェクトにアクセスする方法を説明している古いサポート フォーラムでこのスレッドを見つけました: http://highslide.com/forum/viewtopic.php?f=1&t=1796&p=7975

hs.Expander.prototype.onShowLoading = function (sender) {
   var width = sender.thumbWidth;
   sender.loading.style.width = width +'px';
};

これは「位置」でも機能しますが、「上」または「左」では機能しません

なぜなら:

top と left の値は onShowLoading イベントの後に設定されるため、イベント ハンドラで編集することはできません。これを修正するには、highslide.js ファイル自体を編集します。もう 1 つの方法は、読み込み中のラベルに marginLeft と marginTop を設定し、Highslide に上と左を実行させることです。

ただし、highslide スクリプトの使用方法はさまざまで、highslide.js のコードベースを保持する必要があります。マージンは私を助けません。

カスタム構成スクリプトを作成しましたが、hs.loading にアクセスできません。

if (typeof(hs) != "undefined") {

  $.extend(true, hs || {}, {

    dimmingOpacity:0.75,
    ...,
    loading: hs.createElement('a', {
            className: 'highslide-loading',
            title: hs.lang.loadingTitle,
            innerHTML: hs.lang.loadingText,
            href: 'javascript:;'
        }, {
            position: 'fixed',
            top: '50%',
            opacity: hs.loadingOpacity,
            zIndex: 1
        }, hs.container
    )

  });

}

hs.overrides ( http://highslide.com/ref/hs.overrides ) にもローダーへのアクセスはありません

ローダーをウィンドウの中央に配置する方法はありますか?

そうでない場合-調査を停止します;-)

4

0 に答える 0