2017-11-27 15 views
0

divコンテンツをサイズ変更可能にしたいが、div自体は同じサイズにしたい。これは、ユーザーがスクロールするときに発生します。私はこの機能を持っています:スクロールでズームdivコンテンツ

var zoomable = document.getElementById('zoomable'), 
    zX = 1; 
window.addEventListener('wheel', function (e) { 
    var dir; 
    if (!e.ctrlKey) { 
     return; 
    } 
    dir = (e.deltaY > 0) ? 0.1 : -0.1; 
    zX += dir; 
    zoomable.style.transform = 'scale(' + zX + ')'; 
    e.preventDefault(); 
    return; 
}); 

これは動作しますが、div自体でのみ動作します。このdivには、.fooクラスの複数の小さなドラッグ可能なテーブルがあり、親サイズを変更せずにサイズを変更したいと考えています。私もこれを試しました:

var zoomable = document.getElementsByClassName('foo'), 
    zX = 1; 
window.addEventListener('wheel', function (e) { 
    var dir; 
    if (!e.ctrlKey) { 
     return; 
    } 
    dir = (e.deltaY > 0) ? 0.1 : -0.1; 
    zX += dir; 
    zoomable.each(function(){ 
     $(this).style.transform = 'scale(' + zX + ')'; 
    }) 
    e.preventDefault(); 
    return; 
}); 

しかし、それはどちらも動作しません。コンテンツのサイズを変更する方法はありますか?

編集:ここにjsfiddle:https://jsfiddle.net/vaxobasilidze/ba2n9a61/ これはちょうど私のプロジェクトではありません(複雑すぎるので)、アイデアは同じです。 #zoomable divと同じサイズとその内容(ここでは段落)をサイズ変更できるようにしたいと思います。

+0

作業フィドルを作成してください。 –

+0

@dom_ahdigital私はjsfiddleを追加しました。これで私を助けることができれば、本当にうれしいでしょう。 –

+0

@VaxoBasilidze私はあなたのために私の答えであなたのためにフィドルを作ったことはあなたが望むものですか? – Zvezdas1989

答えて

1

私はあなたのフィドルを調整しました。私はこれがあなたが望んだものだと思います。あなたはあなたの記述のようにこの仕事をするためにあなたのコンテンツをターゲットにする必要があります。

var content = document.getElementById('zoomable').getElementsByTagName('p'); 
var zX = 1; 
window.addEventListener('wheel', function (e) { 
    var dir; 
    if (!e.ctrlKey) { 
     return; 
    } 
    dir = (e.deltaY > 0) ? 0.1 : -0.1; 
    zX += dir; 
    for (var i = 0; i<content.length; i++) { 
     content[i].style.transform = 'scale(' + zX + ')'; 
     } 

    e.preventDefault(); 
    return; 
}); 

https://jsfiddle.net/Karadjordje1389/z254o87v/

+0

それはまさに私が望んでいたものです。ありがとうございました! –

+0

@ VaxoBasilidze喜んで助けてください:) – Zvezdas1989

+0

私はもう1つの質問があります、多分あなたが助けることができます。このコードはFF、Chrome、IEでは正常に動作しますが、Safariでは正常に動作しません。何が問題なの? –

関連する問題