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

  • Mastering jQuery UI
  • Vijay Joshi
  • 616字
  • 2021-07-23 20:33:35

Creating the layout

Create a file named index.html inside the Chapter2 folder. It will contain the entire HTML. For the JavaScript code, create another file named puzzle.js inside the js folder of Chapter2. Now the Chapter2 folder will have four items: the index.html file, the image file for the puzzle (kitty.jpg), the js folder, and the css folder.

Creating the markup for the puzzle

Our first step towards creating the puzzle will be to prepare the required HTML markup. This HTML markup will then be styled using CSS. The following HTML markup will prepare the bare-bones structure of the page required to make the puzzle:

<html>
  <head>
    <meta charset="utf-8">
    <title>Designing a Jigsaw Puzzle</title>
    <link rel="stylesheet" href="css/ui-lightness/jquery-ui-1.10.4.custom.min.css">
  </head>
  <body>
    <div class="container">
      <div id="pieceBox"></div>

      <div id="puzzleContainer"></div>

      <class="clear">&nbsp;</div>
      <div class="clear"> </div>
      <span id="message"></span>

      <div class="clear"> </div>

      <ul class="buttons">
        <li><button id="start">Start</button></li>
        <li><button id="reset">Reset</button></li>
      </ul>
    </div>

    <script src="js/jquery-1.10.2.js"></script>
    <script src="js/jquery-ui-1.10.4.custom.min.js"></script>
    <script src="js/puzzle.js" type="text/javascript"></script>
  </body>
</html>

In the preceding markup, we have a div element with the value of id as container, which is a wrapper for whole page. Inside it are two div elements with pieceBox and puzzleContainer as the values for id. The element pieceBox will act as a box in which we will keep the 16 sliced pieces of the image, whereas the element puzzleContainer will be the canvas on which users will drop these pieces and arrange them. Next, there is a span element where we will show a success or error message after the user has placed all the pieces. There is also a list containing two list items. We will use them as Start and Reset buttons.

Finally, at the bottom of the page are the references to the jQuery, jQueryUI, and puzzle . js files.

Tip

Ensure that the path for the CSS and JavaScript files is correct.

Styling elements

After our page structure is ready, we need to add CSS styles for different elements created in the markup to give the page the desired appearance. This will be done by adding some CSS rules to the head section of the index.html file. The styles that we will use are explained here:

<style type="text/css">
  body{
    font-family:arial,verdana;
    font-size:12px;
    margin: 0 auto; 
    width: 900px;
  }
  div.container{
    border: 1px solid #000;
    float:left;
    margin:0 auto;
    padding:10px;
    width: 100%;
  }

  #pieceBox{
    border: 1px solid #000;
    float: left;
    height: 408px;
    margin: 0 auto;
    position:relative;
    width: 408px;
  }

  #puzzleContainer
  {
    border: 1px solid #000;
    float: right;
    margin: 0 auto;
    height: 408px;
    width: 408px;
  }

  div.img{
    background-image: url('kitty.jpg');
    background-repeat: no-repeat;
    height:100px;
    width:100px;
    float:left;
    border:1px solid #000;
  }
  ul{
    text-align:center;
    list-style:none;
    margin:0;
    padding:0;
  }

  span#message{
    clear:both;
    display: none; 
    font-size: 20px;
    padding: 20px 0;
    text-align: center; 
    width: 100%; 
  }

  ul.buttons{
    cursor:pointer;
    margin-top:10px;
  }

  ul button{
    border:1px solid #000;
    font-weight:bold;
    margin:0 auto;
    padding:10px 0;
    text-align:center;
    width:175px;
    display:inline-block;
  }
  #reset{
    display:none;
  }
  .clear{
    clear:both;
  }
</style>

First, we defined some basic styles for body, container, pieceBox, and puzzleContainer. Then we defined styling for the div elements that have the .img class. This class will be applied to the pieces of the puzzle. Since it will not be efficient to create 16 different images to use as jigsaw pieces, we will use a single image as a sprite. Therefore, we set the background-image property to kitty.jpg, which is the image that we are going to use. Using the background-position CSS property, we will be able to show a specific 100 px x 100 px part of the image.

After this, we defined some CSS properties for the success or error message and the buttons. In the last CSS rule, we hid the Reset button as it will not be required initially.

After writing the HTML and markup, we are ready to make the puzzle functional by plugging in the JavaScript to create the game.

Meanwhile, run the index.html file in your browser and you will see a screen with two boxes, as shown in the following screenshot. Based on their IDs, we will call these boxes pieceBox and puzzleContainer, respectively:

Styling elements
主站蜘蛛池模板: 宾川县| 冕宁县| 陈巴尔虎旗| 蓝山县| 菏泽市| 宁武县| 江山市| 西峡县| 集贤县| 新巴尔虎右旗| 新泰市| 苏州市| 乌兰浩特市| 竹北市| 郸城县| 肃宁县| 葫芦岛市| 元江| 瑞金市| 明溪县| 牙克石市| 武鸣县| 肃北| 建湖县| 库伦旗| 汶上县| 潮安县| 湄潭县| 娱乐| 西城区| 大洼县| 东阿县| 灌南县| 开封县| 乐平市| 潍坊市| 邹城市| 宁德市| 辉县市| 肇庆市| 邓州市|