簡體   English   中英

替換div的內容而不更改大小或滾動

[英]replace content of div without changing size or scrolling

我正在嘗試編寫一些代碼,以便在新內容加載時(通過ajax)用占位符替換舊內容。

<div id="target">
...
</div>

在ajax請求-響應周期中,我想用“加載”消息或圖像替換目標div的內容。

到目前為止,這很簡單...

但是,在某些情況下,目標較小,而在其他情況下,目標較大。 無論哪種情況,我都不希望目標div的大小改變或滾動條出現。 如果加載消息或圖像需要剪切,那就這樣吧。

在整個過程中,“目標” div的簽名(id,類,樣式)必須保持相同,並且我無法在目標div上設置width + height。

我不想依靠收到新內容時正在執行的其他代碼。

僅使用基本的javascript / dhtml和/或prototype-js,您將如何處理?

謝謝,第

這是我目前能想到的最好的方法:

function loading(id, content)
{
    var elem = $(id);
    if (!elem)
        return;

    var dim = elem.getDimensions();
    var width = dim.width - parseInt(elem.getStyle("padding-left")) - parseInt(elem.getStyle("padding-right"));
    var height = dim.height - parseInt(elem.getStyle("padding-top")) - parseInt(elem.getStyle("padding-bottom"));

    elem.innerHTML = "<div style=\"position:relative; overflow:hidden; padding:0; margin:0; border:0; width:" + width + "px; height:" + height + "px;\">" /*  */
            + content + "</div>";
}

隨時發布更好的解決方案!

// prototype
Object.prototype.updateFixedSizeHtml = function(html)
{
    this.innerHTML = "<div style='width:" + this.clientWidth + "px;height:" + this.clientHeight + "px;overflow:hidden;display:block;padding:0;border:0;margin:0'>" + html + "</div>";
}
// usage
document.getElementById('target').updateFixedSizeHtml('New Content');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM