也就是现在做一个WEB的页面,要求能实现我上面说的功能
如果不用程序实现,别的方法也可以,请教!

解决方案 »

  1.   

    哥们,希望对你有点用,用CSS实现:
    http://www.knowsky.com/3706.html
      

  2.   

    看看这些你喜不喜欢,直接从msdn上copy下来的
    Wheel Transition.html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML><HEAD><TITLE>Wheel Transition</TITLE>
    <META http-equiv=Content-Type content="text/html; charset=gb2312"><!-- @ED mapovey 6/8/2000 :Add title: "Wheel Transition" -->
    <SCRIPT>
    var bTranState = 0;
    function fnToggle() {
        oDIV2.filters[0].Apply();
        if (bTranState) { 
    bTranState = 0;
            oDIV2.style.visibility="hidden";    }
        else {  
    bTranState = 1;
            oDIV2.style.visibility="visible";   }
         oDIV2.filters[0].Play();
    }function copy2Clipboard()
    {
      // Copy displayed code to user's clipboard.
      textRange = document.body.createTextRange();
      textRange.moveToElementText(oCode);
      textRange.execCommand("Copy");
    }
    </SCRIPT><STYLE>BODY {
    FONT-SIZE: 80%; BACKGROUND: white; MARGIN: 0px; FONT-FAMILY: verdana
    }
    .bar {
    BORDER-TOP: #99ccff 1px solid; BACKGROUND: #336699; WIDTH: 100%; BORDER-BOTTOM: #000000 1px solid; HEIGHT: 30px
    }
    .desbar {
    PADDING-RIGHT: 10px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 10px; FONT-SIZE: 8pt; BACKGROUND: #ffffff; PADDING-BOTTOM: 10px; WIDTH: 100%; COLOR: black; PADDING-TOP: 10px; BORDER-BOTTOM: #000000 1px solid; HEIGHT: 105px
    }
    .title {
    PADDING-LEFT: 10px; FONT-SIZE: 15pt; COLOR: white
    }
    PRE {
    MARGIN: 0px
    }
    A:link {
    COLOR: white; TEXT-DECORATION: none
    }
    A:visited {
    COLOR: white; TEXT-DECORATION: none
    }
    A:active {
    COLOR: white; TEXT-DECORATION: none
    }
    A:hover {
    COLOR: yellow; TEXT-DECORATION: none
    }
    </STYLE><META content="MSHTML 5.50.4933.1800" name=GENERATOR></HEAD>
    <BODY style="FONT-SIZE: 9pt; FONT-FAMILY: verdana">
    <DIV class="bar title">Wheel Transition </DIV><!-- @ED mapovey 6/8/2000 :Add "Description" heading and rewrite following sentence to describe sample and give instructions on using the controls. Move boilerplate intro to before sample code. -->
    <DIV style="LEFT: 270px; WIDTH: 370px; POSITION: absolute; TOP: 45px">Modify the 
    individual properties of the object using the controls below.<BR>The following 
    code is used to generate this transition.<BR><BR><BR><B>Spokes:</B> <SELECT 
    onchange="oSpokes.innerText=this.options[this.selectedIndex].value; oDIV2.filters.item(0).spokes=this.options[this.selectedIndex].value"> 
      <OPTION value=2>2</OPTION> <OPTION value=4 selected>4</OPTION> <OPTION 
      value=10>10</OPTION> <OPTION value=20>20</OPTION></SELECT> <BR><BR><BR><BUTTON 
    onclick=fnToggle()>Toggle Transition</BUTTON> </DIV>
    <DIV 
    style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: black 1px solid; PADDING-LEFT: 10px; FONT-SIZE: 15pt; BACKGROUND: gold; FILTER: progid:DXImageTransform.Microsoft.gradient(startColorstr='BLACK',endColorstr='BLUE'); LEFT: 10px; PADDING-BOTTOM: 10px; BORDER-LEFT: black 1px solid; WIDTH: 240px; COLOR: white; PADDING-TOP: 10px; BORDER-BOTTOM: black 1px solid; POSITION: absolute; TOP: 40px; HEIGHT: 180px"><IMG 
    style="LEFT: 145px; POSITION: absolute; TOP: 110px" src=""> Product Details 
    <SPAN style="FONT-SIZE: 8pt"><BR>Our new product line should sell very well this 
    year.<BR></SPAN></DIV>
    <DIV id=oDIV2 
    style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: black 1px solid; PADDING-LEFT: 10px; FONT-SIZE: 15pt; BACKGROUND: yellowgreen; FILTER: progid:DXImageTransform.Microsoft.Wheel(spokes=4); LEFT: 10px; VISIBILITY: hidden; PADDING-BOTTOM: 10px; BORDER-LEFT: black 1px solid; WIDTH: 240px; COLOR: black; PADDING-TOP: 10px; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: verdana; POSITION: absolute; TOP: 40px; HEIGHT: 180px" 
    ;><IMG style="LEFT: 15px; POSITION: absolute; TOP: 50px" src=""> Market Data 
    <SPAN 
    style="FONT-SIZE: 8pt; LEFT: 110px; WIDTH: 120px; POSITION: absolute; TOP: 27px"><BR><BR>The 
    et for our products is growing. 
    <UL>
      <LI>15% new 
      <LI>60% old 
      <LI>25% used </LI></UL></SPAN></DIV>
    <DIV class=bar style="Z-INDEX: 3; POSITION: relative; TOP: 200px"><BUTTON 
    style="MARGIN: 5px" onclick=copy2Clipboard()>Copy Code to Clipboard</BUTTON> 
    </DIV><!-- CODE LAYOUT --><PRE id=oCode style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 9pt; BACKGROUND: white; OVERFLOW-X: hidden; PADDING-BOTTOM: 10px; OVERFLOW: scroll; COLOR: black; PADDING-TOP: 10px; POSITION: relative; TOP: 200px; HEIGHT: 246px">&lt;SCRIPT&gt;
    var bTranState = 0;
    function fnToggle() {
    oDIV2.filters[0].Apply();
    if (bTranState) { 
    bTranState = 0;
    oDIV2.style.visibility="hidden";    }
    else {  
    bTranState = 1;
    oDIV2.style.visibility="visible";   }
    oDIV2.filters[0].Play();
    }
    &lt;/SCRIPT&gt;&lt;BUTTON onclick="fnToggle()"&gt;Toggle Transition&lt;/BUTTON&gt;&lt;DIV ID="oDIV1" STYLE="position:absolute; top:50; left:10; width:240; height:160;
    background:gold"&gt; This is DIV #1  &lt;/DIV&gt;&lt;DIV ID="oDIV2" STYLE="visibility:hidden; position:absolute; top:50; left:10; 
    width:240; height:160; background: yellowgreen; 
    <SPAN style="FONT-SIZE: 8pt; COLOR: red; FONT-FAMILY: verdana">filter:progid:DXImageTransform.Microsoft.Wheel(spokes=<SPAN id=oSpokes>4</SPAN>)</SPAN>"&gt;
    &lt;BR&gt;This is DIV #2&lt;/DIV&gt;
    </PRE>
    <DIV></DIV>
    <DIV class=bar 
    style="PADDING-RIGHT: 5px; PADDING-LEFT: 10px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; POSITION: absolute; TOP: 512px"><A 
    target=_top href="http://www.microsoft.com/misc/cpyright.htm">&copy;2000 Microsoft 
    Corporation. All rights reserved. Terms of use</A>. </DIV></BODY></HTML>
      

  3.   

    Zigzag.html
    <HTML>
    <HEAD>
    <TITLE>Zigzag Transition</TITLE>
    <!-- @ED mapovey 6/8/2000 :Add title: "Zigzag Transition" -->
    <SCRIPT>
    var bTranState = 0;
    function fnToggle() {
        oTransContainer.filters[0].Apply();
        if (bTranState=='0') { 
    bTranState = 1;
            oDIV2.style.visibility="visible"; 
    oDIV1.style.visibility="hidden";   
    }
        else {  
    bTranState = 0;
            oDIV2.style.visibility="hidden"; 
    oDIV1.style.visibility="visible";  
    }

         oTransContainer.filters[0].Play(duration=3);
    }function copy2Clipboard()
    {
      // Copy displayed code to user's clipboard.
      textRange = document.body.createTextRange();
      textRange.moveToElementText(oCode);
      textRange.execCommand("Copy");
    }
    </SCRIPT>
    <STYLE>
    body{ 
    margin:0;
    background:white;
    font-family:verdana;
    font-size:80%;
    }
    .bar{
    background:#336699;
    width:100%;
    height:30px;
    border-top:1px solid #99CCFF;
    border-bottom:1px solid #000000;
    }
    .desbar{
    background:#FFFFFF;
    width:100%;
    padding: 10px;
    border-top:1px solid #CCCCCC;
    border-bottom:1px solid #000000;
    color:black; 
    font-size:8pt;
    height:105;
    }
    .title{
    font-size:15pt;
    color:white;
    padding-left:10px;
    }
    PRE { margin:0}a:link
    {
    text-decoration:none;
    color:white
    }
    a:visited
    {
    text-decoration:none;
    color:white
    }
    a:active
    {
    text-decoration:none;
    color:white
    }
    a:hover
    {
    text-decoration:none;
    color:yellow
    }
    .comment { background:#FFFFCC }
    </STYLE></HEAD><BODY STYLE="font-family:verdana; font-size:8pt">
    <DIV CLASS="bar title">
    ZigZag Transition
    </DIV> <!-- @ED mapovey 6/8/2000 :Add "Description" heading and content. Make control labels descriptive. -->
    <DIV STYLE="position:absolute; top:45; left:270; width:370">
    <B> GridSizeX :</B>  <SELECT onchange="oGridSizeX.innerText=this.options[this.selectedIndex].value; oTransContainer.filters.item(0).GridSizeX=this.options[this.selectedIndex].value">
    <OPTION VALUE="8">8</OPTION>
    <OPTION VALUE="16" selected>16</OPTION>
    <OPTION VALUE="32">32</OPTION>
    <OPTION VALUE="64">64</OPTION>
    </SELECT></BR></BR><B> GridSizeY:</B>  <SELECT onchange="oGridSizeY.innerText=this.options[this.selectedIndex].value; oTransContainer.filters.item(0).GridSizeY=this.options[this.selectedIndex].value">
    <OPTION VALUE="8">8</OPTION>
    <OPTION VALUE="16" selected>16</OPTION>
    <OPTION VALUE="32">32</OPTION>
    <OPTION VALUE="64">64</OPTION>
    </SELECT>
    <BR/><BR/><BR/><BUTTON onclick="fnToggle()">Toggle Transition</BUTTON>
    </DIV> <DIV ID="oTransContainer" STYLE="FILTER: progid:DXImageTransform.Microsoft.zigzag(GridSizeX=16, GridSizeX=16);   position:absolute; top:40; left:10; width:240; height:180; "><DIV ID="oDIV1" STYLE="position:absolute; top:0; left:0; width:240; height: 180; background: #666666;  padding:10px; font-size:15pt; border:2px solid black;  color:white">
    <IMG SRC="smallmouse.jpg"  STYLE="position:absolute; top:110; left:145;">
    Product Details
    <SPAN STYLE="font-size:8pt; "><BR/><BR/>Our new product line should sell very well this year.<BR/></SPAN>
    </DIV> <DIV ID="oDIV2" STYLE="visibility:hidden; position:absolute; top:0; left:0; width:240; height: 180; color:black; background: gold;  padding:10px; font-size:15pt; font-family:verdana; border:2px solid black; ">
    <IMG SRC="smallanichart.gif" STYLE="position:absolute; top:50; left:15">
    Market Data
    <SPAN STYLE="font-size:8pt; position:absolute; top:27; left:110; width:120"><BR/><BR/>The et for our products is growing.
    <UL>
    <LI>15% new </LI>
    <LI>60% old</LI>
    <LI>25% used</LI>
    </UL>
    </SPAN>
    </DIV> </DIV> 
    <!-- @ED mapovey 6/8/2000 :Add boilerplate intro for code sample. -->
    <DIV CLASS="bar" STYLE="position:relative; top:200; z-index:3;">
    <BUTTON STYLE="margin:5px"onclick="copy2Clipboard()">Copy Code to Clipboard</BUTTON>
    </DIV> 
    <!-- CODE LAYOUT -->
    <PRE ID="oCode" STYLE="position:relative; top:200; height:246px; font-size:9pt; background:white; padding:10px; color:black; overflow:scroll; overflow-X:hidden;">
    <SPAN CLASS="comment">&lt;!-- This element has the filter applied. --&gt;</SPAN>&lt;DIV ID="oTransContainer" STYLE="position:absolute; top: 0; left: 0; width: 300; 
    height:300; <B> <SPAN STYLE="color:red; font-size:8pt; font-family:verdana; ">filter:progid:DXImageTransform.Microsoft.zigzag(GridSizeX=<SPAN ID="oGridSizeX">16</SPAN>, GridSizeY=<SPAN ID="oGridSizeY">16</SPAN>)</SPAN></B> "&gt;<SPAN CLASS="comment">&lt;!-- This is the first content that is displayed. --&gt;</SPAN>&lt;DIV ID="oDIV1" STYLE="position:absolute; top:50; left:10; width:240; height:160;
    background:gold"&gt; This is DIV #1  &lt;/DIV&gt;<SPAN CLASS="comment">&lt;!-- This content displays after the first content. --&gt;</SPAN>&lt;DIV ID="oDIV2" STYLE="visibility:hidden; position:absolute; top:50; left:10; 
    width:240; height:160; background: yellowgreen; "&gt; &lt;BR&gt; This is DIV #2&lt;/DIV&gt; 
    &lt;/DIV&gt;&lt;BUTTON onclick="fnToggle()"&gt;Toggle Transition&lt;/BUTTON&gt;<FONT COLOR="gray">&lt;SCRIPT&gt;
    var bTranState = 0;
    function fnToggle() {
        oTransContainer.filters[0].Apply();
        if (bTranState=='0') { 
    bTranState = 1;
            oDIV2.style.visibility="visible"; 
    oDIV1.style.visibility="hidden";}
        else {  
    bTranState = 0;
            oDIV2.style.visibility="hidden"; 
    oDIV1.style.visibility="visible";}
         oTransContainer.filters[0].Play(duration=3);}
    &lt;/SCRIPT&gt;</FONT>
    </PRE></DIV> 
    <DIV CLASS="bar" STYLE="position:absolute; top:512; padding:5px; padding-left:10">
    <A href="http://www.microsoft.com/misc/cpyright.htm" target=_top>
    &#169;2000 Microsoft Corporation. All rights reserved. Terms of use</A>.
    </DIV> 
    </BODY>
    </HTML>
      

  4.   

    Anfy这个工具可以创建各种图片渐变的效果,主要是像素的重绘。一段代码如下:
     nextImage = ((currentImage+1)%(img.length));
              if(currentImage<img.length-1){
                System.arraycopy((int[])imagePixArray.get(currentImage),0,pixA,0,totalPix);
                System.arraycopy((int[])imagePixArray.get(currentImage+1),0,pixB,0,totalPix);          }else{
                System.arraycopy((int[])imagePixArray.get(currentImage),0,pixA,0,totalPix);
                System.arraycopy((int[])imagePixArray.get(0),0,pixB,0,totalPix);
              }
              showImage = createImage(new MemoryImageSource(ImageW,ImageH,pixA,0,ImageW));
                repaint();
              //***************          while(true)
              {
                for(int i=0; i<(int)(ImageH/10);i++)
                {
                  try
                  {
                    thread.sleep(20);
                    for(int j=0; j<ImageH; j+=(int)(ImageH/10))
                    {
                      for(int k=0; k<ImageW; k++)
                      {
                        pixA[ImageW*(j+i) + k] = pixB[ImageW*(j+i) + k];
                      }
                    }
                  }
                  catch(InterruptedException e){}
                  showImage = createImage(new MemoryImageSource(ImageW,ImageH,pixA,0,ImageW));
                  showTitle=false;
                  repaint();            }
                break;
              }          currentImage = nextImage;
              repaint();
            }
            catch(InterruptedException e)
            {        }
    你可以搜索applet的相关资料,有的源码上面就有相关实现