2016-09-29 24 views
0

私はスクロール可能なdivを持っています。下にスクロールしてdivを別のdivに折り返すと、スクロール位置が上にリセットされます。どのようにスクロール位置を保持する上の任意のアイデア?div他のdivにラップされたときにスクロールする

HTML:

<div class="box"><p>Lorem ipsum...</p></div> 
<button onclick="wrapme()">wrap me!</button> 

JS:

function wrapme(){ 
    $(document.body).wrapInner($("<div>", { class: "wrapper" })); 
} 

はCSS:

.box { 
    width: 400px; 
    height: 200px; 
    overflow: auto; 
    border: 1px solid #000; 
} 

.wrapper { 
    border: 1px solid blue; 
} 

JSFiddle:https://jsfiddle.net/gyd3r70k/5/

+0

? – Simplicity

+0

あなたのフィドルはあなたのポストのあなたのコードを表していませんし、JQueryの依存関係もなく、あなたのボタンをクリックするとJSエラーを投げます...これを修正してください。 –

+0

申し訳ありませんが、変更は保存されませんでした。私はフィドルを更新しました。 JSは頭に含まれています。 – Ricardo

答えて

0

あなたは、テキスト "scrollTopスプライト" を監視し、保存する必要があります。
はこれを試してください:あなたはあなたのウェブサイトにJSが含まれないhttp://codepen.io/g1un/pen/rrzAVk?editors=1111

function wrapme(){ 
    var top = $('.box').scrollTop(); 
    $(document.body).wrapInner($("<div>", { class: "wrapper" })); 
    $('.box').scrollTop(top); 
} 
+0

ありがとう@ g1un、私はそれを知っていましたが、要素を調べないで別の方法があるのか​​どうか疑問に思いました。私はこの事件が不思議です。要素に親を追加する唯一の方法がそれを複製するのであれば、なぜその参照が保持されるのでしょうか? – Ricardo

+0

@リカルド私は理解していませんでした。あなたは何の言及をしていますか? – g1un

+0

要素(この例のボックス)への参照を保存してdiv内にラップすると、参照は変更されません。または、同じjQuery要素ですが、新しいDOM要素ですか? – Ricardo

関連する問題