1

データベースからコンテンツを動的にロードする自作のライトボックスがあり、結果は次のようになります。

<div class="lightbox">

    <div class="lbtop">

    </div>

    <div class="lbcontent">

        lightbox content

    </div>

    <div class="lbbot">

    </div>

</div>

ライトボックス内のすべての要素はブロック レベルの要素であり、フローティングされます (これには、p、h1 などのサブ要素が含まれます)。

ライトボックスは固定配置を使用して、次のように常に同じ場所に配置されるようにします。

.lightbox {

    width: 320px;
    height: auto;
    z-index: 999;
    position: fixed;
    top: 0;
    left: 0;
    display: block;
    overflow-y: scroll;

}

ここまでは順調ですね。ライトボックスにコンテンツを追加することもまったく問題なく、要素はすべてうまくスクロールします。

しかし、ライトボックス内に iframe (具体的には、soundcloud 埋め込み) を追加しようとすると、iframe 要素は、次のようにライトボックス内の他の要素とは異なる方法でスクロールします。

iframe がコンテンツの上に移動しました (正しい場所ではありません)

この例では、下にスクロールしただけで、iframe 要素がそのままではなく、テキストの上に移動しています。

CSS 位置、オーバーフローのさまざまな組み合わせを使用して多くのソリューションを試しましたが、これに対して独自の jQuery を使用した修正 (iframe を正しく配置された div にラップする) を構築しようとしましたが、役に立ちませんでした。全体として、Webkit のバグである可能性があると感じています (Android に問題があり、開発中の Web サイトはモバイル サイトです)。私は使用してiOsのバグを解決しました-webkit-overflow-scrolling : touch;(誰か、これに代わるAndroidはありますか?)。

Web で修正を検索しても、使用可能な結果は得られませんでした。私が得た最も近いものは、ライトボックスの位置を絶対に設定することでしたが、これはライトボックスの機能に影響を与え、私を満足させません.

これに関する提案があれば幸いです:)事前に感謝します:)

4

1 に答える 1