文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>JavaScript面向对象的一个例子

JavaScript面向对象的一个例子

时间:2007-10-17  来源:yueliangdao0608

一个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 + ")";
            }
        }

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载