JS模擬百度搜索框和選項(xiàng)卡的實(shí)現(xiàn)
練習(xí)1
實(shí)現(xiàn)搜索框內(nèi),輸入相關(guān)數(shù)字,在下方顯示相關(guān)內(nèi)容,模擬百度搜索,詳細(xì)代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.content {
width: 600px;
height: 500px;
margin: 0 auto;
}
.show {
display: none;
width: 200px;
height: 300px;
border: solid 1px black;
}
</style>
</head>
<body>
<div class="content">
<div class="serach">
<input type="text" id="val" placeholder="請輸入課程" style="width:200px; height:30px;">
<input type="submit" id="sub">
</div>
<div class="show" id="show"></div>
</div>
<script>
//以數(shù)組為例,可以連接數(shù)據(jù)庫,進(jìn)行查詢數(shù)據(jù)
let arr = ['web前端精英特訓(xùn)班 980元', 'HTML核心技術(shù) 199元', 'CSS核心技術(shù) 299元', 'Vue核心技術(shù) 599元',
'CSS+HTML核心技術(shù) 299元', 'web前端在線商城 99元', 'JavaScript核心技術(shù) 399元', 'JavaScript高級技術(shù) 899元'];
//先完成,展示區(qū)域的顯示與隱藏
let input = document.getElementById('val');
let show = document.getElementById('show');
input.onkeyup = function () {
//當(dāng)鍵盤抬起時(shí)觸發(fā)
show.style.display = 'block';
//input.value和arr的每一項(xiàng)進(jìn)行匹配 用indexOf():方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置, 匹配到返回下標(biāo),匹配不到返回-1
let str = '';
arr.forEach((item) => {//forEach()中第一個(gè)元素item,代表數(shù)組中的元素,每一項(xiàng)
let res = item.indexOf(input.value);
if (res != -1) {
str += '<p>' + item + '</p>';
}
})
//判斷input.value為空或者str數(shù)組中沒有,給用戶一個(gè)提示
if (!input.value || !str) {
show.innerHTML = '<p>暫無結(jié)果</p>';
} else {
show.innerHTML = str;
}
}
input.onblur = function () {
//失去焦點(diǎn)隱藏
show.style.display = 'none';
input.value = '';
}
</script>
</body>
</html>結(jié)果:
點(diǎn)擊搜索框時(shí):


練習(xí)2,選項(xiàng)卡,詳細(xì)代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
ul,
li {
margin: 0;
padding: 0;
list-style: none;
}
ul {
overflow: hidden;
}
li {
width: 100px;
height: 40px;
background-color: #ccc;
border: 1px solid #ccc;
float: left;
line-height: 40px;
/*設(shè)置行高等于height高度文字會(huì)垂直居中顯示*/
text-align: center;
}
div {
width: 406px;
height: 406px;
border: 1px solid #ccc;
}
img {
width: 406px;
height: 406px;
display: none;
}
</style>
</head>
<body>
<ul>
<li>大菊</li>
<li>英短</li>
<li>美短</li>
<li>布偶</li>
</ul>
<div>
<img src="images/15.jpg" alt="" style="display: block;">
<img src="images/16.jpg" alt="">
<img src="images/17.jpg" alt="">
<img src="images/18.jpg" alt="">
</div>
<script>
//1.移動(dòng)到那個(gè)選項(xiàng)卡上邊,背景顏色要改變,對用的內(nèi)容區(qū)域要顯示
//移出時(shí)背景顏色恢復(fù),對應(yīng)內(nèi)容區(qū)域隱藏
let li = document.getElementsByTagName('li');
let img = document.getElementsByTagName('img');
for (let i = 0; i < li.length; i++) {
//先進(jìn)性元素?cái)?shù)組的下標(biāo)的設(shè)置 在js中獲取數(shù)組的下標(biāo)用 .index
li[i].index = i;
//移入時(shí)的屬性
li[i].onmousemove = function () {
li[i].style.backgroundColor = 'yellow';
//先把所有的圖片進(jìn)行隱藏,再讓對應(yīng)的圖片出現(xiàn)
for (let j = 0; j < img.length; j++) {
img[j].style.display = 'none';
}
img[this.index].style.display = 'block';
}
//移出時(shí)恢復(fù)原來的顏色
li[i].onmouseout = function () {
li[i].style.backgroundColor = '#eee';
}
}
</script>
</body>
</html>結(jié)果:

file:///C:/Users/DELL/Pictures/Screenshots/屏幕截圖(15).jpg
點(diǎn)擊第二個(gè)選項(xiàng)卡時(shí):

到此這篇關(guān)于JS模擬百度搜索框和選項(xiàng)卡的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)JS模擬百度搜索框和選項(xiàng)卡內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript實(shí)時(shí)顯示當(dāng)天日期的方法
這篇文章主要介紹了javascript實(shí)時(shí)顯示當(dāng)天日期的方法,可實(shí)時(shí)顯示當(dāng)前日期及星期的功能,非常簡單實(shí)用,需要的朋友可以參考下2015-05-05
封裝html的select標(biāo)簽的js操作實(shí)例
本文將為大家介紹下正如標(biāo)題所示的select操作:清空所有的選項(xiàng)、添加一個(gè)選項(xiàng)、根據(jù)值、選中一個(gè)選項(xiàng)、根據(jù)下標(biāo),選中一個(gè)選項(xiàng),感興趣的朋友可以參考下哈,希望對大家有所幫助2013-07-07
解決微信小程序云開發(fā)中獲取數(shù)據(jù)庫的內(nèi)容為空的方法
這篇文章主要介紹了解決微信小程序云開發(fā)中獲取數(shù)據(jù)庫的內(nèi)容為空的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05
移動(dòng)端網(wǎng)頁開發(fā)調(diào)試神器Eruda的介紹與使用技巧
在日常的移動(dòng)端開發(fā)時(shí),一般都是試用chrome瀏覽器的移動(dòng)端模式進(jìn)行開發(fā)和調(diào)試,只有在chrome調(diào)試完成,而最近發(fā)現(xiàn)了一個(gè)新的調(diào)試方法,所以這篇文章主要給大家介紹了關(guān)于移動(dòng)端網(wǎng)頁開發(fā)調(diào)試神器Eruda的基本資料,以及其使用的一些技巧,需要的朋友可以參考下。2017-10-10
Layui 導(dǎo)航默認(rèn)展開和菜單欄選中高亮設(shè)置的方法
今天小編就為大家分享一篇Layui 導(dǎo)航默認(rèn)展開和菜單欄選中高亮設(shè)置的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
PixiJS學(xué)習(xí)之Sprite類的使用詳解
Sprite 直譯為 “精靈”,是游戲開發(fā)中常見的術(shù)語,就是將一個(gè)角色的多個(gè)動(dòng)作放到一個(gè)圖片里,通過裁剪局部區(qū)域得到當(dāng)前的角色狀態(tài)圖。本文主要介紹了PixiJS中Sprite類的使用,需要的可以參考一下2023-02-02

