js模拟百度模糊搜索的实例


Posted in Javascript onAugust 04, 2017

废话不多说,直接上代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    *{
      margin:0;
      padding:0;
    }
    input{
      display:block;
      list-style:none;
    }
    html,body{
      color:#000;
      font-size:14px;
      font-family:'微软雅黑';
    }
    .box{
      margin:50px auto;
      width:300px;
    }
    .box input{
      padding:0 10px;
      width:278px;
      height:30px;
      border:1px solid green;
    }
    .box ul{
      display:none;
      border:1px solid green;
      border-top:none;
    }
    .box ul li{
      list-style:none;
      padding:0 10px;
      height:30px;
      line-height:30px;
      cursor:pointer;
    }
    .box ul li:hover{
      background:#eee;
    }
  </style>
</head>
<body>
  <div class='box'>
    <input type="text" id='searchInp'/>
    <ul id='searchBox'>
      <li>1111</li>
      <li>2222</li>
      <li>3333</li>
      <li>4444</li>
    </ul>
  </div>
  <script src='jquery.min.js'></script>
  <script>
    var searchModule = (function(){
      var $searchInp = $('#searchInp'),
        $searchBox = $('#searchBox');

      //向百度的服务器发送JSONP请求,把数据绑定到容器当中
      function bindHTML(){
        var searchKey = $searchInp.val();

        function callback(data){
          data = data['g'];
          var str = '';
          $.each(data,function(index,item){
            if(index<=3){
              str += '<li>'+item+'</li>'
            }
          })
          $searchBox.html(str).stop().slideDown(300);
        }

        $.ajax({
          url:"https://sp0.baidu.com/5a1Fazu8AA54nxGKo9WTAnF6hhy/su?wd="+searchKey,
          dataType:"jsonp",
          jsonp:'cb',
          success:callback

        })
      }

      //事件绑定和模块的入口
      function init(){
        //文本框获取焦点或者输入内容,判断当前文本框中是否有内容,有内容绑定数据,没有内容隐藏展示框
        $searchInp.on("focus keyup",function(){
          var val = $(this).val();
          if(val.length>0){
            bindHTML();
            return;
          }
          $searchBox.stop().slideUp(300);
        }).on('blur',function(){
          window.setTimeout(function(){
            $searchBox.stop().slideUp(300);
          },3000)
        })

        //给展示框中的li绑定方法
        $searchBox.on('click',function(e){
          var tar = e.target,
            tarTag = tar.tagName.toUpperCase(),
            $tar = $(tar);
          if(tarTag==="LI"){
            $searchInp.val($tar.html());
            $(this).stop().slideUp(300);
          }
        })

      }

      return {
        init:init
      }

    })()
    searchModule.init();
  </script>
</body>
</html>

以上这篇js模拟百度模糊搜索的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 编程引入命名空间的方法
Jun 29 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
Aug 13 Javascript
JQuery中serialize()用法实例分析
Feb 06 Javascript
如何在Angular2中使用jQuery及其插件的方法
Feb 09 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
Jun 01 Javascript
ionic选择多张图片上传的示例代码
Oct 10 Javascript
JS实现的合并多个数组去重算法示例
Apr 11 Javascript
详解微信小程序之scroll-view的flex布局问题
Jan 16 Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
Dec 01 Javascript
小程序自定义弹框效果
Nov 16 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
Aug 04 #Javascript
addeventlistener监听scroll跟touch(实例讲解)
Aug 04 #Javascript
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 #jQuery
Angular2环境搭建具体操作步骤(推荐)
Aug 04 #Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
Aug 03 #Javascript
JavaScript中正则表达式判断匹配规则及常用方法
Aug 03 #Javascript
vue 2.0封装model组件的方法
Aug 03 #Javascript
You might like
德生PL990的分析评价
2021/03/02 无线电
PHP安装问题
2006/10/09 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
简单的js计算器实现
2016/10/26 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
vue实现分页加载效果
2019/12/24 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
python实现word 2007文档转换为pdf文件
2018/03/15 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
如何通过python实现人脸识别验证
2020/01/17 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
教育孩子心得体会
2014/01/01 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
农业项目合作意向书
2015/05/08 职场文书
联谊活动总结范文
2015/05/09 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
mysql中between的边界,范围说明
2021/06/08 MySQL
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
Kubernetes控制节点的部署
2022/04/01 Servers
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS