網頁設計中,通過表單和JS設計,可以實現一次輸入,很便捷地在多個網站同時搜索,外觀效果如下圖所示:
在前面的框內輸入關鍵字,單擊單選按鈕選擇需要檢索數據的網站,即可開始搜索。
<div id="footer">
<form name="formmain" id="formmain" onSubmit="search()" >
<input name="searchkey" type="text" id="searchkey" value="" size="35" onfocus=this.select(); onmouseover=this.select(); >
<input name="Submit" type="button" style="line-height:18px;" value=" " onclick="search()" id="searchbutton" />
<input onclick="search();" name=radio type=radio id="rdbaidu" checked><a >百度</a>
<input onclick="search();" name=radio type=radio id="rd360sou"><a >360</a>
<input onclick="search();" name=radio type=radio id="rdgoogle"><a >谷歌</a>
<input onclick="search();" name=radio type=radio id="rdbingzonghe"><a >必應</a>
<input onclick="search();" name=radio type=radio id="rdsogou" ><a title="搜狐旗下搜索">搜狗</a>
<input onclick="search();" name=radio type=radio id="rdyahoozhongguo"><a >雅虎</a>
<input onclick="search();" name=radio type=radio id="rdyoudao"><a title="網易旗下搜索">有道</a>
<input onclick="search();" name=radio type=radio id="rdsoso"><a title="騰訊旗下搜索" >搜搜</a>
<input onclick="search();" name="radio" type="radio" id="rdgoogleen"><a >GoogleEn</a>
<input onclick="search();" type="radio" name="radio" id="rd_yahoo" value="radiobutton"><a >Yahoo</a>
<input onclick="search();" type="radio" name="radio" id="rd_bing" value="radiobutton"><a >bing</a>
<input onclick="search();" type="radio" name="radio" id="rd_gzlib" /><a title="0100000308194,sixthre">gzLibrary</a>
<input onclick="search();" type="radio" name="radio" id="bdbaike" /><a >百度百科</a>
</form>
</div>
function search(){
if(formmain.rdgoogle.checked)
window.open("http://www.google.com.hk/search?hl=zh-CN&q=" + encodeURI(formmain.searchkey.value));
if(formmain.rdbaidu.checked)
window.open("http://www.baidu.com/baidu?tn=zhongguosou&ct=&lm=&z=&rn=&word="+formmain.searchkey.value+"&_si.x=4&_si.y=2");
if(formmain.rdyahoozhongguo.checked)
window.open("http://search.cn.yahoo.com/s?pid=402877_1010&v=web&p=" + formmain.searchkey.value);
if(formmain.rdsogou.checked)
window.open("http://www.sogou.com/web?query="+formmain.searchkey.value+"&sogouhome=");
if(formmain.rdsoso.checked)
window.open("http://www.soso.com/q?pid=s.idx&w=" + formmain.searchkey.value);
if(formmain.rdyoudao.checked)
window.open("http://www.youdao.com/search?keyfrom=web.index.suggest&q="+formmain.searchkey.value+"&btnIndex="+ formmain.searchkey.value);
if(formmain.rdbingzonghe.checked)
window.open("http://cn.bing.com/search?FORM=BWFD&q=" + encodeURI(formmain.searchkey.value));
if(formmain.rdgoogleen.checked)
window.open("http://www.google.com.hk/search?hl=en&newwindow=1&safe=strict&tbo=d&site=webhp&source=hp&q="+encodeURI(formmain.searchkey.value));
if (formmain.rd_yahoo.checked)
window.open("http://search.yahoo.com/search?prssweb=Search&ei=UTF-8&fr=FP-tab-web-t&fl=0&x=wrt&p=" + encodeURI(formmain.searchkey.value));
if(formmain.rd_bing.checked)
window.open("http://www.bing.com/search?q="+encodeURI(formmain.searchkey.value));
if(formmain.rd360sou.checked)
window.open("http://www.so.com/s?ie=utf-8&src=360sou_home&q=" + encodeURI(formmain.searchkey.value) + "&_re=0");
if(formmain.bdbaike.checked)
window.open("http://www.baidu.com/baidu?word=" + encodeURI(formmain.searchkey.value) + "&tn=bds&cl=3&ct=2097152&si=baike.baidu.com&s=on");
}
上面的JS代碼看起來很多,其實每個單選按鈕對應的代碼命令格式都是相同的,基本框架如下所示:
if(...)
window.open(...);
也就是通過判斷選擇了哪一個單選按鈕,然后應用window對象的open方法以對話框內的內容為關鍵字打開相應的網站進行搜索。
open的參數對應的是網站搜索對應的字符串(地址+關鍵字),不同網站的字符內容構成稍有區別。另外,如果是中文搜索,需要用encodeURI()進行適當的編碼。
當客戶與服務器通訊時,一些非字母數字字符(如空格)不能以它們本來的形式傳輸。允許直接傳輸的只有一個范圍很窄的字母、數字、標點符號集。為了包含其它的字符,它們必須通過特殊的記號(%)與它們的十六進制ASCII值來編碼。如,空格的16進制是hex 20(ASCII碼10進制是32),編碼后為%20.在瀏覽器的歷史記錄或URL中就會經常出現這個符號。
JavaScript中有三個可以對字符串編碼的函數,分別是: escape, encodeURI, encodeURIComponent,相應3個解碼函數:unescape, decodeURI, decodeURIComponent 。
在HTML中,Id屬性是一個非常重要的元素,它可以為網頁上的每個元素提供一個獨特的標識符。通過Id屬性,您可以精準地定位和操作特定的HTML元素,從而實現更細致的樣式控制和交互功能。本文將為您揭示Id屬性的魔力,教您如何利用它來打造出與眾不同的網頁體驗。
Id屬性的值必須在整個HTML文檔中是唯一的,這使它成為定位和操作特定元素的理想選擇。通常情況下,我們會為頁面中的重要元素如頁頭、導航欄、主內容區域等分別設置Id。
<header id="header">
<nav id="nav">
<ul>
<li><a href="#">首頁</a></li>
<li><a href="#">產品</a></li>
<li><a href="#">關于我們</a></li>
</ul>
</nav>
</header>
<main id="main">
<section id="hero">
<h1>歡迎來到我的網站</h1>
<p>這里是網站的主要內容區域</p>
</section>
</main>
有了Id屬性,您可以在CSS中直接針對特定元素進行樣式定制。這種精準的選擇器使您能夠更好地控制網頁的視覺效果。
#header {
background-color: #333;
color: #fff;
padding: 20px;
}
#nav ul {
list-style-type: none;
display: flex;
}
#nav li a {
color: #fff;
text-decoration: none;
padding: 10px 20px;
}
#hero {
background-color: #f2f2f2;
padding: 50px;
text-align: center;
}
除了CSS,Id屬性在JavaScript中也扮演著重要的角色。通過Id,您可以快速地獲取和操作特定的HTML元素,實現各種交互效果。
<button id="myButton">點擊我</button>
const button = document.getElementById('myButton');
button.addEventListener('click', () => {
alert('您點擊了按鈕!');
});
在使用Id屬性時,有幾個需要注意的最佳實踐:
總之,HTML Id屬性是一個非常強大的工具,它可以為網頁元素提供獨特的標識,從而幫助您實現精細化的樣式控制和交互功能。只要掌握好它的用法,相信您一定能打造出令人驚嘆的網頁作品。
生成關于html中OnClick的頭條爆款文章
好的,我為您生成了一篇關于HTML中onClick事件的頭條爆款文章,以下是完整內容:
在HTML中,onClick事件是一種非常強大的交互功能,它可以讓您的網頁元素在用戶點擊時執行各種自定義的操作。無論是彈出提示框、切換樣式還是觸發復雜的交互效果,onClick事件都能輕松搞定。本文將為您揭示onClick事件的魔力,教您如何利用它打造出引人入勝的網頁體驗。
onClick事件最常見的應用就是為按鈕添加點擊響應。當用戶點擊按鈕時,就會觸發預先定義好的JavaScript代碼,從而實現所需的功能。
<button onclick="showMessage()">點擊我</button>
function showMessage() {
alert('您點擊了按鈕!');
}
除了按鈕,您還可以為其他HTML元素如鏈接、圖片等添加onClick事件,讓整個網頁變得生動有趣。
onClick事件的真正威力在于它能與JavaScript無縫結合,實現各種復雜的交互效果。您可以利用JavaScript操作DOM,動態地改變元素的樣式、內容甚至觸發其他事件。
<div id="box" class="box">這是一個盒子</div>
<button onclick="toggleBox()">切換盒子</button>
function toggleBox() {
const box = document.getElementById('box');
box.classList.toggle('active');
}
在這個例子中,當用戶點擊按鈕時,JavaScript會切換盒子元素的樣式類,從而實現顯示/隱藏的交互效果。
除了基本的交互,onClick事件還可以用于觸發更復雜的功能,如表單提交、數據請求、動畫效果等。您可以將onClick事件與其他事件監聽器、API調用等技術相結合,打造出令人驚叩的網頁體驗。
<form onsubmit="submitForm(event)">
<input type="text" id="name" placeholder="請輸入您的名字" />
<button type="submit">提交</button>
</form>
function submitForm(event) {
event.preventDefault(); // 阻止表單默認提交行為
const nameInput = document.getElementById('name');
const name = nameInput.value;
// 執行表單提交的其他邏輯
console.log(`您的名字是: ${name}`);
}
在使用onClick事件時,有幾個需要注意的最佳實踐:
總之,HTML onClick事件是一個非常強大的交互工具,它可以讓您的網頁元素煥發生機,變得更加生動有趣。
是否曾經試著點擊或點擊一個元素(例如:按鈕、鏈接),并且注意到只有單擊該元素的特定區域,它才會響應?
必生這種情況是因為可點擊區域未應用于整個元素。為了更加清楚,請參見下圖,左圖可點擊區別(圈紅部分)明顯比右圖的小很多,所以右圖的實現用戶體驗會更好。
對于本文,會介紹一些事例,并通過事例演示如何增加可點擊區別,提高用戶體驗。
WCAG全稱Web Content Accessibility Guidelines 網頁內容無障礙瀏覽準則,簡單的說就是為了方便殘障人士(包括低視患者,盲人,聾人,學習障礙,行動不便,認知障礙....)訪問Web內容而制定的相關標準,可以使網站更加人性化。
舉個例子,在WCAG準則2.3.2中規定:網頁不包含任何閃光超過3次/秒的內容。
用戶應該能夠使用臺式機/筆記本電腦上的鍵盤以及移動設備或平板電腦上的觸摸屏來操作輸入。不要在移動設備屏幕上將按鈕設置得太小,以免按下正確的按鈕。觸摸目標的最小尺寸最好至少為44 x 44像素。
**費茲法則(Fitts law)**是一個人機互動以及人體工程學中人類活動的模型;它預測了快速移動到目標區域所需的時間是目標區域的距離和目標區域大小的函數。
在下面的圖中,我模擬了兩個按鈕的不同情況。在左側,按鈕更小,更遠,用戶需要更多的時間與它互動。在右側,按鈕大小更大,更接近于它的同級輸入元素,這將使交互更容易、更快。
接著,我們再來看看一些更加真實例子。注意:記住WCAG準則 和費茲法則 的概念。
在需要時使用實際真實<button>(包含可點擊區域)非常重要。下面的示例來自我使用的在線銀行系統:
<div class="navig next" onclick="validateLogin()">Next</div>
這是上面按鈕的HTML的GIF圖像。我把鼠標懸停在按鈕上,光標仍然是一個指針,這很好。不過,我也可以選擇文本和懸停時,有一個文本光標!如果使用了正確的元素,就不會發生這種情況。
當使用HTML<button>元素時,會獲得下面效果:
有些元素,我們需要添加 padding,原因有二:
之前在做導航的時候,犯了一個錯誤,應該是給 a 標簽添加 padding 而不是 li:
<nav>
<ul>
<li class="nav-item"><a href="#">Home</a></li>
<li class="nav-item"><nav href="#">Products</nav></li>
<li class="nav-item"><a href="#">Store</a></li>
<li class="nav-item"><a href="#">Team</a></li>
</ul>
</nav>
// css
.nav-item {
padding: 12px 16px;
}
基于上面的HTML和CSS,可點擊的區域將只是文本,如下圖所示:
正確的方法是在a 標簽本身上添加padding。請注意,默認情況下,padding 需要塊元素才有效,而 a 標簽是行內元素,所以可以給 a 標簽設置block,inline-element或 flex。
.nav-item a {
display: block;
padding: 12px 16px;
}
添加了上面的樣式后,可點擊的效果如下:
假設可點擊區域如下所示:
這種體驗不是很好,鼠標或手指指向屏幕上如此小的目標會比較難。在下圖中,它的可點擊區域更大并且更易于交互。
事例源碼:https://codepen.io/shadeed/pen/PMygee
當存在復選框或單選按鈕元素時,我希望可以單擊它或關聯的標簽來激活/禁用它。
從用戶體驗的角度來看,這是難以訪問和糟糕的。在 HTML 中,可以使用for屬性將標簽與輸入框綁定在一起。
<input type="checkbox" id="option1">
<label for="option1">Option 1</label>
或者可以將輸入框放置在標簽內:
<label for="option1">
Option 1
<input type="checkbox" id="option1">
</label>
然后,在<label>元素上添加padding,以使可點擊區域變大。這樣,問題得以解決,整個復選框或單選按鈕都是可單擊的,如下圖所
對于帶有類別的頁面,有時我會注意到列表鏈接沒有擴展到其父頁面的整個寬度。也就是說,可點擊區域僅在文本上,如下圖所示:
解決方法:
.nav-item a {
/*Other styles*/
padding: 12px 16px;
display: block;
}
添加后,如下所示:
在最近的Twitter更新中,導航設計在可點擊區域大小方面存在問題。最初,它僅與文本相關,如下面的屏幕截圖所示,但他們在收到反饋后將其修復。
在某些情況下,需要在章節標題的遠端添加“查看更多”按鈕或箭頭。在下面的示例中,我將箭頭放置在假圓中,以便可以正確地使箭頭居中。
通常情況下,箭頭周圍的間距可以使用padding或width和height。
僅通過改變元素的寬度和高度或使用padding,并不總是能夠使可點擊區域變大,這時候就需要偽元素救場了。
這個想法是,偽元素屬于其父元素,因此當我們創建具有特定寬度和高度的偽元素時,它將充當其父元素的單擊/觸摸/懸停區域。
在下圖中,我在菜單按鈕中添加了:after偽元素:
.menu-2:after {
content: "";
position: absolute;
left: 55px;
top: 0;
width: 50px;
height: 50px;
background: #e83474;
/*Other styles*/
}
事例源碼:https://codepen.io/shadeed/pen/BXXjEg?editors=0100
作者:Ahmad Shadded 譯者:前端小智 來源:css-tricks
原文:https://css-tricks.com/enhancing-the-clickable-area-size/
*請認真填寫需求信息,我們會在24小時內與您取得聯系。