下面是一個(gè)簡(jiǎn)單的例子,演示了如何使用onfocus事件屬性和JavaScript來(lái)改變<div>元素的顏色。
<<div onfocus="changeColor(this)" tabindex="0">點(diǎn)擊此處輸入文本</div>
<br>
<script>
function changeColor(element) {
element.style.backgroundColor = "yellow";
}
</script>
在上面的代碼中,我們給<div>元素添加了onfocus事件屬性和一個(gè)JavaScript函數(shù)changeColor。當(dāng)<div>元素獲取焦點(diǎn)時(shí),即被點(diǎn)擊或通過(guò)Tab鍵選中時(shí),changeColor函數(shù)將被調(diào)用。該函數(shù)將<div>元素的背景顏色設(shè)置為黃色。
除了改變顏色,我們還可以通過(guò)onfocus事件屬性實(shí)現(xiàn)其他類(lèi)型的功能。例如,我們可以使用它來(lái)顯示一個(gè)提示信息或者清空輸入字段。
<<div onfocus="showMessage()" tabindex="0">點(diǎn)擊此處輸入文本</div>
<br>
<script>
function showMessage() {
alert("請(qǐng)?jiān)诖颂庉斎胛谋?);
}
</script>
在上面的例子中,當(dāng)<div>元素被選中時(shí),showMessage函數(shù)將被調(diào)用。該函數(shù)將顯示一個(gè)包含提示信息的彈窗。
此外,onfocus事件屬性還可以與其他事件屬性一起使用,以實(shí)現(xiàn)更復(fù)雜的功能。例如,我們可以結(jié)合onfocus和onblur事件屬性,創(chuàng)建一個(gè)交互式的輸入字段。
<<div onfocus="clearContents(this)" onblur="restoreContents(this)" contenteditable="true" tabindex="0">點(diǎn)擊此處輸入文本</div>
<br>
<script>
function clearContents(element) {
if (element.innerText === "點(diǎn)擊此處輸入文本") {
element.innerText = "";
}
}
<br>
function restoreContents(element) {
if (element.innerText === "") {
element.innerText = "點(diǎn)擊此處輸入文本";
}
}
</script>
在這個(gè)示例中,當(dāng)<div>元素獲得焦點(diǎn)時(shí),clearContents函數(shù)將被調(diào)用。如果<div>中的文本是默認(rèn)的提示信息,函數(shù)將清空該文本。當(dāng)<div>失去焦點(diǎn)時(shí),即點(diǎn)擊其他區(qū)域時(shí),restoreContents函數(shù)將被調(diào)用。如果<div>中沒(méi)有任何文本,函數(shù)將恢復(fù)默認(rèn)的提示信息。
上述代碼案例只是onfocus事件屬性在<div>元素上的使用示例之一。通過(guò)這個(gè)事件屬性,我們可以實(shí)現(xiàn)豐富的交互功能,為用戶(hù)提供更好的體驗(yàn)。