2010-12-02 7 views
0

ページをすばやくハックしてPhotoshopを使用してイメージをスライスしなければなりませんでした。 Photoshopは複雑なテーブル構造とスペーサーgifを使用してHTMLとしてエクスポートし、ページを作成しました。IE8では、ページ上の任意のロールオーバーアクション後にイメージが正しい位置にジャンプします...任意の要素に...

いくつかの表のセルで記入する必要があるカスタムコンテンツがあります。 テーブルの一部で、私はflickrbadge(http://www.flickrbadge.com/)を使用して、いくつかのflickrサムネイルをセルに埋め込みます。私は、このロードがいつ起こるかを制御できません。

別のセルに大きなタイトルのグラフィック(<td colspan="4" rowspan="2">)があり、その下のセルにHTMLテキストがあります。

PC上のIE8ではページの動作が機能しません。 (IE7でテストしていませんでした) 何が起こっているのは、ページが読み込まれたときにタイトルのグラフィックとHTMLのテキストが上に現れることです。しかし、画像のロールオーバーの1つをロールオーバーすると、タイトルの図が正しい位置にスナップします。

私は、フリッカーのサムネイルの読み込みが原因であると思っていたので、スクリプトをコメントアウトし、タイトルのグラフィックが表示されます。

タイトルのグラフィックを押し上げる、またはプレースホルダイメージをflickrセルに埋め込むなど、私がCSSで行うことができることはありますか?

更新

私はFlickrのスクリプトの実行を遅らせることができます...これは、表のセル内にあるものです。

<script type="text/javascript" src="http://www.flickr.com/badge_code.gne?count=16&display=latest&size=square&[email protected]&raw=1"></script> 

答えて

1

あなたはでそれを遅らせることを試みることができる:

function initFlickr() { 

    setTimeout(function() { 

    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = 'http://www.flickr.com/badge_code.gne?count=16&display=latest&size=square&[email protected]&raw=1'; 

    // set an id on the table cell so you can get hold of it here. 
    var el = document.getElementById('id-of-that-table-cell'); 
    el.appendChild(script); 

    }, 100); // 100 milliseconds. 

} 

そしてのonloadから、それをトリガーにしたいです。

<body onload="initFlickr()"> 

は確かにこれは動作するわけではありませんが、それは最初の成功引き分けスクリプト を挿入する必要があります。

+0

...私は別のハックを行うことができました...私は心の中でこれをしておこう。マーティンのロック! – milesmeow

0

これはIEのファンキーです。イメージのonloadイベントに接続してそこからコンテナのサイズを変更できます。

0

はい、それはFlickrのは、要素の現在の位置を読み込むよう あなたがこの方法このスクリプトのロードを遅らせることができますになります。

<script> 
    function loadFlickr(){ 
     var headelement = document.getElementsByTagName('head')[0]; 
     var scriptvar = document.createElement('script'); 
     scriptvar.type = 'text/javascript'; 
     scriptvar.src= 'http://www.flickr.com/badge_code.gne?count=16&display=latest&size=square&[email protected]&raw=1'; 
     headelement.appendChild(scriptvar); 
    } 
    window.onload = loadFlickr; 
    </script> 

別のポスターが述べたようにしかし、あなたはおそらく、特定のセルにこれを移入します。 flickrはdocument.writeを使用しているので、実際には遅延することはできません。document.writeは、HTMLを塗りつぶす前にloadの前にのみ動作します。 (更新:flickrをロードしてドキュメントの仕方を変更する前に、実際にdocument.writeメソッド自体をオーバーライドすることができます。flickrだけの作品を書く - 私はそれが醜いハックだと思うので、flickrの内容を知ることに依存しているので、こちらをご覧ください。http://www.tutkiun.com/2010/07/load-javascript-after-pageload.html

最も簡単な解決策は、ただFlickrのバッジと私は実際にこのハック使用はiframe

0

を使用して、表のセルにそれを埋め込む:終了bodyタグの前に

右を...

<script type="text/javascript"> 
/* 
* A hack to reload the title graphic so that it will position itself correctly... 
*/ 
document.images["title_graphic"].src = "images/content_title.jpg"; 
</script> 

これはトリックを行うようです。.. 。

私は、私が制御できるように手書きのページを作っておくべきだと思います。私はそれの一部がテーブルもすべて不気味であると思う。

0

これは私には一度起こりました。問題は、htmlテーブルにあることになりました。私は以下のようにTDタグ内VALIGN =「トップ」を使用して終了:それがうまくいくことのように聞こえる

<td width="10%" valign="top">