放大縮小VML_VML相關

來源:互聯網
上載者:User
由於VML是向量的,放大縮小變得很容易了。我們先看一個例子,看看VML能做到什麼程度。還是以前面的一個飛碟做為例子。它是用線、圓、弧等形狀拼湊起來的一個圖形。我增加了移動事件,當放大太多了,可以拖動圖片查看。

放大 1倍
放大 2倍
放大 3倍
放大 4倍
放大 5倍
放大 6倍
放大 7倍
放大 8倍
放大 9倍
放大10倍


是否感覺出來了,放大縮小對 VML 的畫質沒有改變?因為 VML 是向量的。動態改變它的 coordsize 值就可以了,注意,減小值等於放大,增大值就等於縮小。可以參考下面的指令碼:

var xx=6000;
var yy=6000;
function zoom(h)
{
group1.coordsize=xx/h+","+yy/h;
}

上面的 xx,yy 是指預設狀態下的 coordsize 值。調用這個函數的時候使用 zoom(n) 其中 n 是要放大的倍數。
當VML中包含 文字的時候,圖形放大了,但文字不會自動放大。這樣一來就很不對稱了,有個技巧,就是文字都用一種標記包著,放大函數就需要改進一下了:
var xx=6000;
var yy=6000;
var fs=9;
function zoom(h)
{
group1.coordsize=xx/h+","+yy/h;
for(var i=0;i document.all.tags("DIV").item(i).style.fontSize=fs*h+"pt";
}

fs是預設狀態下的文字大小。document.all.tags("DIV") 將返回頁面上所有DIV元素,然後把他們的文字大小都變大。實踐證明,放大後和VML的比例是不變的。
  • 相關文章

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.