2015年1月28日水曜日

開発環境

  • OS X Yosemite - Apple (OS)
  • Safari, Firefox, Google Chrome(Webプラウザ)
  • Emacs (CUI)、BBEdit - Bare Bones Software, Inc.(GUI) (Text Editor)
  • JavaScript (プログラミング言語)

Head First jQuery(Ryan Benedetti(著)、Ronan Cranley(著)、O'Reilly Media)のChapter 3(JQuery Events and Functions: Making Things Happen on Your Page)、EXERCISE(No. 1877)を解いてみる。

その他参考書籍

EXERCISE(No. 1877)

HTML5(BBEdit, Emacs)

sample1877.html

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Jump for Joy</title>
    <link rel="stylesheet" href="styles/my_style1877.css">
  </head>  
  <body>
    <header>
      <h2>Jump for Joy Sale</h2>
    </header>
    <section id="main">
      <div class="guess_box"><img src="images/jump1.jpg" alt="jump1"></div>
      <div class="guess_box"><img src="images/jump2.jpg" alt="jump2"></div>
      <div class="guess_box"><img src="images/jump3.jpg" alt="jump3"></div>
      <div class="guess_box"><img src="images/jump4.jpg" alt="jump4"></div>
    </section>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script src="scripts/my_script1877.js"></script>
  </body>
</html>

JavaScript(BBEdit, Emacs)

scripts/my_script1877.js

$(document).ready(function (){
    var getRandom = function(num) {
        var result = Math.floor(Math.random() * num);

        return result;
    },
        checkForCode = function () {
            var discount,
                my_num;

            if ($.contains(this, document.getElementById('has_discount'))) {
                my_num = getRandom(5) + 1;
                discount = '<p>Your Discount is ' + my_num + '%</p>';
            } else {
                discount = '<p>Sorry, no discount this time!</p>';
            }
            $(this).append(discount);
            $('.guess_box').each(function() {
                $(this).unbind('click');
            });
        },
        hideCode = function () {
            var numRand = getRandom(4);
            
            $('.guess_box').each(function(index, value) {
                if (numRand === index) {
                    $(this).append('<span id="has_discount"></span>');
                    return false;
                }
            });
        };
    
    hideCode();
    $('.guess_box').click(checkForCode);
    $('.guess_box').hover(
        function () {
            $(this).addClass('hover');
        },
        function () {
            $(this).removeClass('hover');
        });    
});

CSS(BBEdit, Emacs)

styles/my_style1877.css

header, section, div{
    float:left;
    height:245px;
    text-align:left;
    border: solid #000 3px;
}
header{
    width:100%;
    border:0px;
    height:50px;
}
#main{
    background-color:grey;
    height: 500px;
}
.guess_box {
    height: 245px;
}

.hover {
    border: solid #f00 3px;
}

sample1877.html

0 コメント:

コメントを投稿