JavaScript物件導向的一個例子

來源:互聯網
上載者:User
一個JS的操作快顯視窗位置的類。
(摘自JavaScript Definitive Guide)
    var bounce = {
            x:0,y:0,w:200,h:200, // Window position and size

            dx:5, dy:5, // Window velocity

            interval:100, // Milliseconds between updates

            win: null, // The window we will create

            timer:null, // Return value of setInterval()

            
            //Start the animation

            start:function() {
                // Start with the window in the center of the screen

                bounce.x = (screen.width - bounce.w)/2;
                bounce.y = (screen.height - bounce.h)/2;
                
                // Create the window that we're going to move around

                // The javascript: URL is simply a way to display a short document

                // The final argument specifies the window size

                bounce.win = window.open('javascript:"<h1>Bounce!</h1>"',"","left=" 
                 + bounce.x + ",top=" + bounce.y + ", width="
                                         + bounce.w + ", height=" + bounce.h + ", status=yes");
                // Use setInterval() to call the nextFrame() method every interval

                // milliseconds. Store the return value so that we can stop the 

                // animation by passing it to clearInterval().

                bounce.timer = setInterval(bounce.nextFrame, bounce.interval);        
            },            
            // Stop the animation

            stop: function(){
                clearInterval(bounce.timer); // Cancel timer

                if(!bounce.win.closed){ // Close window

                    bounce.win.close();                    
                }
            },
            //Display the next frame of the animation. Invoked by setInterval()

            nextFrame:function(){
                // If the user closed the window, stop the animation

                if (bounce.win.closed){
                    clearInterval(bounce.timer);
                    return;
                }
                // Bounce if we have reached the right or left edge

                if ((bounce.x + bounce.dx > (screen.availWidth - bounce.w)) ||
                 (bounce.x + bounce.dx <0)){
                        bounce.dx = -bounce.dx;                    
                }
                // Bounce if we have reached the bottom or top edge

                if ((bounce.y + bounce.dy > (screen.availHeight - bounce.h))||
                 (bounce.y + bounce.dy < 0)){
                    bounce.dy = - bounce.dy;
                }
                
                // Update the current postion of the window

                bounce.x += bounce.dx;
                bounce.y += bounce.dy;
                
                // Finally, move the window to the new position

                bounce.win.moveTo(bounce.x, bounce.y);
                
                // Display current position in window status line

                bounce.win.defaultStatus = "(" + bounce.x + "," + bounce.y + ")";
            }
        } 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.