2016-11-08 7 views
0

私たちは、携帯電話ではセットプレーンにズーム機能を持たせるのに便利なシートプランを用意しています。 Andoidモバイルでピンチを使用してズームインすると、ズームインされますが、ページのレスポンスを維持するためには、ピンチアウトする必要があります。ここで特定のdivのズームのみを使用

は私が https://jsfiddle.net/ohaumyxj/

にズームインしたい#seatsのdiv要素の例です。これは、プレーンCSSで実現することができるか、jQueryのここにミックスに来ない何かですか?私は、あなたがサイトの連絡先ページでGoogleマップを使用して取得したものを探しています。このよう

.container { 
 
    margin: 0 auto; 
 
} 
 
#bmessage { 
 
    padding: 1px 3px; 
 
    height: 20px; 
 
    font-size: 14px; 
 
    background: #ddf; 
 
    color: #080; 
 
    font-weight: bold; 
 
} 
 
#seats:before { 
 
    content: ''; 
 
    display: block; 
 
    padding: 50%; 
 
} 
 
#seats { 
 
    margin: 10px 0; 
 
    padding: 10px 0; 
 
    position: relative; 
 
    background-image: url(https://s21.postimg.org/qd8mqgh07/seatplan11.gif); 
 
    background-repeat: no-repeat; 
 
    background-size: contain; 
 
} 
 
#seats div { 
 
    position: absolute; 
 
    width: 1.5%; 
 
    height: 1.5%; 
 
} 
 
#seats .green { 
 
    background: url('https://s12.postimg.org/93ugmrvb1/seatg.gif') no-repeat center; 
 
    background-size: cover; 
 
    margin:0 !important; 
 
}
<div id="theatre"> 
 
    <div class="container"> 
 
    <div id="bmessage">Select the seats that you need.</div> 
 
    <div id="seats"> 
 
     <div class="avail std green" si="332" title="Y1" style="top: 8.7%; left: 10.2%; border: none; margin: 3px 1px;"></div> 
 
     <div class="avail std green" si="333" title="Y2" style="top:8.7%; left:13%;"></div> 
 
     <div class="avail std green" si="334" title="Y3" style="top:8.7%; left:16.2%;"></div> 
 
     <div class="avail std green" si="335" title="Y4" style="top: 8.7%; left: 18.8%; border: none; margin: 3px 1px;"></div> 
 
     <div class="avail std green" si="336" title="Y5" style="top: 8.7%; left: 21.5%; border: none; margin: 3px 1px;"></div> 
 
     <div class="avail std green" si="337" title="Y6" style="top:8.7%; left:24.2%;"></div> 
 
    </div> 
 
    </div> 
 
</div>

+0

をjQueryライブラリ – Purushothaman

+0

ありがとうPuru、私はこれの外観が好きです。この唯一の潜在的な問題は、ユーザーが席をクリックして予約することです。座席をクリックするとズームが発生します – me9867

+0

Zoomoozがこのdiv構造を使用するのに苦労します。おそらく、「コンテナ内のズーム」は私が必要とする解決策です。 – me9867

答えて

0

fiddle

HTML

<div id="theatre" class="zoomViewport"> 
     <div class="container zoomContainer"> 
      <div id="bmessage">Select the seats that you need.</div> 
      <div id="seats" class="zoomTarget"> 
       <div class="avail std green" si="332" title="Y1" style="top: 8.7%; left: 10.2%; border: none; margin: 3px 1px;"></div> 
       <div class="avail std green" si="333" title="Y2" style="top:8.7%; left:13%;"></div> 
       <div class="avail std green" si="334" title="Y3" style="top:8.7%; left:16.2%;"></div> 
       <div class="avail std green" si="335" title="Y4" style="top: 8.7%; left: 18.8%; border: none; margin: 3px 1px;"></div> 
       <div class="avail std green" si="336" title="Y5" style="top: 8.7%; left: 21.5%; border: none; margin: 3px 1px;"></div> 
       <div class="avail std green" si="337" title="Y6" style="top:8.7%; left:24.2%;"></div> 
      </div> 
     </div> 
    </div> 

にjqueryの参照してください:あなたはhttp://jaukia.github.io/zoomooz/ .ITのAを使用することができます

$(document).ready(function() { 
      $("#seats").click(function (evt) { 
       $(this).zoomTo({ targetsize: 0.75, duration: 600 }); 
       evt.stopPropagation(); 
      }); 
     }); 
+0

このフィドルを携帯用のサイズにしてタップしてズームインすると、座席をズームインしないように見えます。私は実際には、私が見ることができる限りズームを提示せずに私のためのdivを移動する – me9867

0

var zoomable = document.getElementById('seats'), 
    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; 
}); 
関連する問題