原生JS实现百度搜索功能
今天呢给大家分享一下自己用原生JS做的一个百度搜索功能,下面上代码:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <!--百度iocn图标-->
- <link rel="shortcut icon" href="https://www.baidu.com/favicon.ico" type="image/x-icon"/>
- <title>百度一下,你就知道</title>
- <style type="text/css">
- body{/*清除浏览器自带样式*/
- margin: 0;
- padding: 0;
- }
- .box{/*最大的盒子*/
- width: 100%;
- /*background: yellow;*/
- height: 636px;
- background-image:url("https://ss1.bdstatic.com/kvoZeXSm1A5BphGlnYG/skin/880.jpg?2");
- background-size: 100%;
- }
- .box_log{/*log盒子*/
- width: 100%;
- }
- .box_log img{/*百度log*/
- width: 19.8%;
- margin-left: 49.4%;
- transform: translate(-50%);
- margin-top: 38px;
- margin-bottom: 19px;
- }
- .box_text{/*text搜索框盒子大小*/
- width: 100%;
- height: 36px;
- }
- .log_img{/*input框中的小相机*/
- position: absolute;
- left: 865px;
- top: 202px;
- }
- #text{
- width: 540px;
- height: 36px;
- box-sizing: border-box;
- margin-left: 355px;
- margin-top: 3px;
- text-indent: 4px;
- }
- #btn{
- width: 100px;
- height: 36px;
- background: #3385FF;
- border: 0px;
- letter-spacing: 1px;
- color: white;
- margin-left: -5px;
- font-size: 15px;
- box-sizing: border-box;
- transform: translateY(2px);
- box-sizing: border-box;
- }
- #btn:hover{
- cursor: pointer;
- }
- #search{
- width: 540px;
- /*background: yellow;*/
- margin: 0;
- padding: 0;
- margin-left: 355px;
- list-style: none;
- display: none;
- border: 1px solid #E3E5E4;
- }
- #search li{
- line-height: 36px;
- background: white;
- }
- #search li:hover{
- background: #F0F0F0;
- }
- .li1{
- text-indent: 4px;
- }
- </style>
- </head>
- <body>
- <div class="box">
- <div class="box_log">
- <img src="../img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png"/>
- </div>
- <div class="box_text">
- <img src="../img/QQ图片20180119115441.png" class="log_img"/>
- <input type="text" name="text" id="text" value=""/>
- <input type="button" name="bdyx" id="btn" value="百度一下" />
- <ul id="search">
- <li class="li1" id="0" onclick="iptShow(this.id)"></li>
- <li class="li1" id="1" onclick="iptShow(this.id)"></li>
- <li class="li1" id="2" onclick="iptShow(this.id)"></li>
- <li class="li1" id="3" onclick="iptShow(this.id)"></li>
- <li class="li1" id="4" onclick="iptShow(this.id)"></li>
- <li class="li1" id="5" onclick="iptShow(this.id)"></li>
- <li class="li1" id="6" onclick="iptShow(this.id)"></li>
- <li class="li1" id="7" onclick="iptShow(this.id)"></li>
- <li class="li1" id="8" onclick="iptShow(this.id)"></li>
- <li class="li1" id="9" onclick="iptShow(this.id)"></li>
- </ul>
- </div>
- </div>
- <script>
- var otext = document.getElementById("text"); //获取input框
- ose = document.querySelector("#search"); //通过类名选择器 选择到search框
- lis = document.getElementsByClassName("li1"); //获取所有的li
- otext.onkeyup = function(){ //当在input框中键盘弹起发生事件
- ose.style.display = otext.value?"block":"none"; /*三目运算符,如果otext.value的值部位空,则block。*/
- var osc = document.createElement("script"); /*创建一个script标签*/
- osc.src = "https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd="+otext.value+"&cb=houxiaowei";
- /*srcipt的src值引入百度的url,然后将otext文本框中输入的内容连接到url,在后面在运行自己的方法*/
- document.body.appendChild(osc);
- /*将创建好的script标签元素放入body中*/
- /*input框中按下回车根据input的值跳转页面*/
- if(event.keyCode==13){
- /*将百度作为连接,传入input的值,并跳入新的页面*/
- window.location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+otext.value
- }
- }
- var count = 0;
- var search = 0;
- var arr = ose.children; /*获取ose下的所有li*/
- function houxiaowei(json){
- var jsonLength = 0; /*json长度的初始值*/
- // console.log(json.s); 打印json数据中的所有数据
- for(var x in json.s){ /*将循环的次数变成json的长度*/
- jsonLength++;
- }
- // console.log(jsonLength); 打印json数据的长度
- for(var i=0;i<lis.length;i++){
- if(jsonLength==0){ /*如果遍历出的长度等于0,li的值为空*/
- arr[i].innerHTML = null;
- }else{
- if(json.s[i]!=null){/*如果json[i]的值不等于空,则将它的值放入li中*/
- arr[i].innerHTML = json.s[i];
- }
- }
- }
- if(count==lis.length-1){
- count=0;
- search=0;
- }
- count++;
- search++;
- }
- /*单击li中的值显示在input框中*/
- function iptShow(thisId){
- otext.value = arr[thisId].innerHTML;
- window.location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+otext.value
- }
- /*单击body中的任意地方隐藏li*/
- document.body.onclick = function(){
- ose.style.display = "none";
- }
- /*单击百度btn的时候触发,并跳到新的连接*/
- var btn = document.querySelector("#btn");
- btn.onclick = function(){
- /*获取当前input的值*/
- var otext = document.getElementById("text").value;
- /*将百度作为连接,传入input的值,并跳入新的页面*/
- window.location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+otext
- }
- </script>
- </body>
- </html>
原生JS实现百度搜索功能的更多相关文章
- JS 实现百度搜索功能
今天我们来用JS实现百度搜索功能,下面上代码: HTML部分: <!DOCTYPE html> <html> <head> <meta charset=&qu ...
- 原生JS模拟百度搜索关键字与跳转
<style type="text/css"> *{ margin: 0; padding: 0; } #text{ width: 300px; height: 30p ...
- js/jQuery实现类似百度搜索功能
一.页面代码:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www. ...
- vue 使用watch监听实现类似百度搜索功能
watch监听方法,watch可以监听多个变量,具体使用方法看代码: HTML: <!doctype html> <html lang="en"> < ...
- 原生JS实现购物车结算功能代码+zepto版
html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- 原生js实现vue组件功能
在如今VUE盛行的情况下,我们一直在惊叹于VUE的组件的功能,却不知道,原生js早就已经支持了这个功能. 最近在公开课学到的,js还有很多很多需要探索学习. 下面是一个简单的例子 <!DOCTY ...
- 原生JS实现滑动验证功能
一般很多网站都有滑动验证的功能,简单滑动验证的原理如下图所示: 主要理解思想就行 图中的代码可能和实际写的有所不同 HTML和CSS也可根据仔细的喜好就行修改 完整代码: <!DOCTYPE h ...
- js 获取百度搜索关键词的代码
有可能有时候我们会用到在百度搜什么关键词进来我们的网站的,所有我们又想拿到用户搜索的关键词. 这是我研究了半天所得出的办法.话不多说直接贴代码 <script> function quer ...
- js实现百度搜索框滑动固定顶部
现在很多主流系统例如百度.有道.爱奇艺等的搜索框都有一个特点,滑动到刚好看不到搜索框时,固定搜索框到顶部,这也算是一个对用户友好型的操 作. 在看了百度的js和css后自己摸索出来实现效果,还是学艺不 ...
随机推荐
- 第七章:Python基础のXML操作和面向对象(一)
本課主題 XML介绍与操作实战 shutil 模块介绍与操作实战 subprocess 模块介绍与操作实战 初探面向对象与操作实战 本周作业 XML介绍和操作实战 對於浏览器返回的字符串有以下幾種: ...
- SQL Server-聚焦WHERE Column=@Param OR @Param IS NULL有问题?
前言 上一篇我们讲完SQL动态查询,本节我们继续来讲解SQL动态查询中存在的问题. SQL动态查询条件筛选过滤 当我们创建存储过程调用存储过程时,若筛选条件有值则过滤,没有值则返回所行记录,类似如下查 ...
- (GO_GTD_1)基于OpenCV和QT,建立Android图像处理程序
一.创建新QT工程 一定要是全英文路径,比如"E:\android_qt_opencv\GO_GTD" 由于我们在安装的时候,选择android的工具链,所以在这里会出现以下选择, ...
- 七牛php-sdk使用
使用七牛云存储服务有一年多了,大部分功能基于其PHP-SDK来做开发,现对sdk的一些功能做一个总结. 一.资源上传 上传资源文件到七牛空间的不同实现方法 二.文档转换 介绍如何使用七牛以及七牛第三方 ...
- Python 之 基础知识(一)
首先,对于初学者在一个项目中设置多个程序可以执行,是非常方便的,可以方便对不同知识点的练习和测试 对于商业项目而言,通常在一个项目中,只有一个可以执行的Python程序 一.注释 为了提高可读性,注释 ...
- 洛谷 P1967 货车运输
洛谷 P1967 货车运输 题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在 ...
- cs231n spring 2017 lecture1 Introduction to Convolutional Neural Networks for Visual Recognition 听课笔记
1. 生物学家做实验发现脑皮层对简单的结构比如角.边有反应,而通过复杂的神经元传递,这些简单的结构最终帮助生物体有了更复杂的视觉系统.1970年David Marr提出的视觉处理流程遵循这样的原则,拿 ...
- iOS学习——iOS项目Project 和 Targets配置详解
最近开始学习完整iOS项目的开发流程和思路,在实际的项目开发过程中,我们通常需要对项目代码和资料进行版本控制和管理,一般比较常用的SVN或者Github进行代码版本控制和项目管理.我们iOS项目的开发 ...
- 2017广东工业大学程序设计竞赛初赛 题解&源码(A,水 B,数学 C,二分 D,枚举 E,dp F,思维题 G,字符串处理 H,枚举)
Problem A: An easy problem Description Peter Manson owned a small house in an obscure street. It was ...
- I Hate It(线段树点修改区间查询)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 I Hate It Time Limit: 9000/3000 MS (Java/Others) ...