jQuery基礎教程(第四版)第3章練習:
關於答案:
// // (1) 在Charles Dickens被單擊時,給它應用 selected 樣式。
$(document).ready(function() {
$(‘#header‘).on(‘click‘,function() {
$(‘.author‘).addClass(‘selected‘)
});
})
// (2) 在雙擊章標題( <h3 class="chapter-title"> )時,切換章文本的可見性。
$(document).ready(function() {
$(‘#chapter-preface‘).on(‘dblclick‘,function() {
$(‘.chapter-title‘).toggleClass(‘hidden‘);
})
})
// (3) 當用戶按下向右方向鍵時,切換到下一個 body 類;右方向鍵的鍵碼是 39 。
// var setBodyClass=function(className){
// $("body").removeClass().addClass(className);
// $(".switcher button").removeClass("selected");
// $("#switcher-"+className).addClass("selected");
// }
// //頁面初始時默認為選中狀態
// $("#switcher-default").addClass("selected");
// $(document).keyup(function (event) {
// var num=$(".switcher button").filter(".selected").index()-1;
// alert(num);
// if(event.which==39) num=(num+1)%3;
// else if(event.which==37) num=(num-1)%3;
// else return false;
// var btnClassname=$(".switcher button").eq(num).attr("id").split("-")[1];
// setBodyClass(btnClassname);
// })
// 第二種方法
$(function(){
var setBodyClass=function(className){
$("body").removeClass().addClass(className);
$(".switcher button").removeClass("selected");
$("#switcher-"+className).addClass("selected");
}
$("#switcher-default").addClass("selected");//頁面初始時默認為選中狀態
var bodyClass=["default","narrow","large"];
var count=0;//設置一個計數器
$(document).keyup(function(event){
if (event.keyCode == 39) {
setBodyClass(bodyClass[(count+1)%3]);//如果設置為count%3則在第一次按下右鍵時頁面不會有反應(因為默認是setBodyClass[0])
count++;
}
})
})
// (4) 挑戰:使用 console.log() 函數記錄在段落中移動的鼠標的坐標位置。(註意: console.log()可以在Firefox的firebug擴展、Safari的Web Inspector或Chrome、IE中的Developer Tools中使用。)
//獲取鼠標坐標函數
$(document).ready(function(){
//獲取鼠標坐標函數
$(document).mouseover(function(e) {
var x = e.pageX;
var y = e.pageY;
console.log(‘x坐標‘+x+‘,‘+‘y坐標‘+y);
})
})
// (5) 挑戰:使用 .mousedown() 和 .mouseup() 跟蹤頁面中的鼠標事件。如果鼠標按鍵在按下它的地方被釋放,則為所有段落添加 hidden類。如果是在按下它的地方之下被釋放的,刪除所有段落的 hidden 類。
$(document).ready(function(){
varposxr=0,posy=0;
$(document).mousedown(function(event){
posx=event.clientX;
posy=event.clientY;
})
$(document).mouseup(function(event){
posx1=event.clientX;
posy1=event.clientY;
if(posy1==posy&&posx==posx1){
$(‘p‘).addClass(‘hidden‘)
}
else if(posy1>posy){
$(‘p‘).removeClass(‘hidden‘)
}
})
})
書本配套的源代碼HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>A Christmas Carol</title>
<link rel="stylesheet" href="css/03.css" type="text/css" />
<script src="jquery.js"></script>
<script src="js/03.js"></script>
</head>
<body>
<div id="container">
<div id="switcher" class="switcher">
<h3>Style Switcher</h3>
<button id="switcher-default">
Default
</button>
<button id="switcher-narrow">
Narrow Column
</button>
<button id="switcher-large">
Large Print
</button>
</div>
<div id="header">
<h2>A Christmas Carol</h2>
<h2 class="subtitle">In Prose, Being a Ghost Story of Christmas</h2>
<div class="author">by Charles Dickens</div>
</div>
<div class="chapter" id="chapter-preface">
<h3 class="chapter-title">Preface</h3>
<p>I HAVE endeavoured in this Ghostly little book, to raise the Ghost of an Idea, which shall not put my readers out of humour with themselves, with each other, with the season, or with me. May it haunt their houses pleasantly, and no one wish to lay it.</p>
<p>Their faithful Friend and Servant,</p>
<p>C. D.</p>
<p>December, 1843.</p>
</div>
<div class="chapter" id="chapter-1">
<h3 class="chapter-title">Stave I: Marley‘s Ghost</h3>
<p>MARLEY was dead: to begin with. There is no doubt whatever about that. The register of his burial was signed by the clergyman, the clerk, the undertaker, and the chief mourner. Scrooge signed it: and Scrooge‘s name was good upon ‘Change, for anything he chose to put his hand to. Old Marley was as dead as a door-nail.</p>
<p>Mind! I don‘t mean to say that I know, of my own knowledge, what there is particularly dead about a door-nail. I might have been inclined, myself, to regard a coffin-nail as the deadest piece of ironmongery in the trade. But the wisdom of our ancestors is in the simile; and my unhallowed hands shall not disturb it, or the Country‘s done for. You will therefore permit me to repeat, emphatically, that Marley was as dead as a door-nail.</p>
<p>Scrooge knew he was dead? Of course he did. How could it be otherwise? Scrooge and he were partners for I don‘t know how many years. Scrooge was his sole executor, his sole administrator, his sole assign, his sole residuary legatee, his sole friend, and sole mourner. And even Scrooge was not so dreadfully cut up by the sad event, but that he was an excellent man of business on the very day of the funeral, and solemnised it with an undoubted bargain.</p>
<p>The mention of Marley‘s funeral brings me back to the point I started from. There is no doubt that Marley was dead. This must be distinctly understood, or nothing wonderful can come of the story I am going to relate. If we were not perfectly convinced that Hamlet‘s Father died before the play began, there would be nothing more remarkable in his taking a stroll at night, in an easterly wind, upon his own ramparts, than there would be in any other middle-aged gentleman rashly turning out after dark in a breezy spot—say Saint Paul‘s Churchyard for instance— literally to astonish his son‘s weak mind.</p>
<p>Scrooge never painted out Old Marley‘s name. There it stood, years afterwards, above the warehouse door: Scrooge and Marley. The firm was known as Scrooge and Marley. Sometimes people new to the business called Scrooge Scrooge, and sometimes Marley, but he answered to both names. It was all the same to him.</p>
<p>Oh! But he was a tight-fisted hand at the grind-stone, Scrooge! a squeezing, wrenching, grasping, scraping, clutching, covetous, old sinner! Hard and sharp as flint, from which no steel had ever struck out generous fire; secret, and self-contained, and solitary as an oyster. The cold within him froze his old features, nipped his pointed nose, shrivelled his cheek, stiffened his gait; made his eyes red, his thin lips blue; and spoke out shrewdly in his grating voice. A frosty rime was on his head, and on his eyebrows, and his wiry chin. He carried his own low temperature always about with him; he iced his office in the dog-days; and didn‘t thaw it one degree at Christmas.</p>
<p>External heat and cold had little influence on Scrooge. No warmth could warm, no wintry weather chill him. No wind that blew was bitterer than he, no falling snow was more intent upon its purpose, no pelting rain less open to entreaty. Foul weather didn‘t know where to have him. The heaviest rain, and snow, and hail, and sleet, could boast of the advantage over him in only one respect. They often "came down" handsomely, and Scrooge never did.</p>
<p>Nobody ever stopped him in the street to say, with gladsome looks, "My dear Scrooge, how are you? When will you come to see me?" No beggars implored him to bestow a trifle, no children asked him what it was o‘clock, no man or woman ever once in all his life inquired the way to such and such a place, of Scrooge. Even the blind men‘s dogs appeared to know him; and when they saw him coming on, would tug their owners into doorways and up courts; and then would wag their tails as though they said, "No eye at all is better than an evil eye, dark master!"</p>
<p>But what did Scrooge care! It was the very thing he liked. To edge his way along the crowded paths of life, warning all human sympathy to keep its distance, was what the knowing ones call "nuts" to Scrooge.</p>
</div>
</div>
</body>
</html>
書本配套的CSS:
/***************************************
Default Styles
************************************** */
html, body {
margin: 0;
padding: 0;
}
body {
font: 62.5% Verdana, Helvetica, Arial, sans-serif;
color: #000;
background: #fff;
}
#container {
font-size: 1.2em;
margin: 10px 2em;
}
h1 {
font-size: 2.5em;
margin-bottom: 0;
}
h2 {
font-size: 1.3em;
margin-bottom: .5em;
}
h3 {
font-size: 1.1em;
margin-bottom: 0;
}
code {
font-size: 1.2em;
}
a {
color: #06581f;
}
/***************************************
Chapter Styles
************************************** */
.poem {
margin: 0 5em;
}
.chapter {
margin: 1em;
}
.switcher {
float: right;
background-color: #ddd;
border: 1px solid #000;
margin: 10px;
padding: 10px;
font-size: .9em;
}
.switcher h3 {
margin: .5em 0;
}
#header {
clear: both;
}
body.large .chapter {
font-size: 1.5em;
}
body.narrow .chapter {
width: 250px;
}
.selected {
font-weight: bold;
}
.hidden {
display: none;
}
.hover {
cursor: pointer;
background-color: #afa;
}
有些是借鑒他人博客.如有影響,侵刪.
jQuery基礎教程(第四版)第3章練習: