官术网_书友最值得收藏!

The overlays

The last UI elements we need are the overlays. The following are three of them:

  • The 'new turn' overlay shows the name of the current player when it is their turn. Clicking on the 'new turn' player switches to the 'last play' overlay.
  • The 'last play' overlay shows the player what their opponent did just before. It displays either of the following:
    • The card played by the opponent during the preceding turn
    • A reminder that their turn was skipped
  • The 'game over' overlay shows whenever a player or both players lose. It displays the names of the players with the phrase "is victorious" or "is defeated". Clicking on the 'game over' overlay reloads the game.

All of these overlays have two things in common--they do something when the user clicks on them, and they have a similar layout design. So, we should be smart here and structure our components to reuse code as much as we can where it makes sense. The idea here is to create a generic overlay component, which will take care of the click event and the layout and three specific overlay-content components for each one of the overlays we need.

Before starting, add a new activeOverlay property to the app state in the state.js file:

// The consolidated state of our app
var state = {
// UI
activeOverlay: null,
// ...
}

This will hold the name of the currently displayed overlay or will be null if no overlay is shown.

主站蜘蛛池模板: 四子王旗| 贵州省| 柘荣县| 五家渠市| 西昌市| 涞水县| 乳源| 定结县| 西和县| 镇坪县| 淮滨县| 阿巴嘎旗| 江孜县| 梁河县| 定陶县| 新丰县| 桐城市| 洛扎县| 商河县| 克山县| 阿图什市| 茂名市| 久治县| 梁平县| 绩溪县| 凤庆县| 遂平县| 绥芬河市| 胶州市| 弥渡县| 东阿县| 南开区| 东方市| 安乡县| 南昌市| 盱眙县| 巫溪县| 开阳县| 罗山县| 荥阳市| 资溪县|