jquery插件实现搜索历史


Posted in jQuery onApril 24, 2021

每天一个jquery插件-做搜索历史,供大家参考,具体内容如下

效果如下

jquery插件实现搜索历史

代码部分

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>做搜索历史</title>
  <script src="js/jquery-3.4.1.min.js"></script>
  <style>
   *{
    margin: 0px;
    padding: 0px;
   }
   #searchbox{
    /* border: 1px solid lightgray; */
    height: 40px;
    width: 720px;
    position: relative;
   }
   #searchinput{
    border: 1px solid lightgray;
    border-radius: 5px 0px 0px 5px;
    height: 28px;
    position: absolute;
    right: 45px;
    top: 5px;
    left: 5px;
    width: 670px;
    outline: none;
    text-indent: 12px;
    font-size: 12px;
    color: gray;
   }
   #searchinput:focus{
    border-color: rgb(252,25,68);
   }
   #searchinput:focus~#morebox{
    display:flex;
   }
   #searchbtn{
    height: 30px;
    width: 40px;
    border: none;
    border-radius: 0px 5px 5px 0px;
    background-color: rgb(252,25,68);
    position: absolute;
    right: 5px;
    top: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
   }
   #searchbtn img{
    width: 25px;
    height: 25px;
   }
   #morebox{
    border: 1px solid lightgray;
    position: absolute;
    top: 40px;
    left: 5px;
    right: 5px;
    height: 370px;
    z-index: 7;
    border-radius: 2px;
    display: flex;
    display: none;
   }
   #push{
    flex: 1;
    /* border: 1px solid lightgray; */
    position: relative;
   }
   #history{
    /* display: none; */
    flex: 1;
    /* border: 1px solid lightgray; */
    position: relative;
   }
   .head{
    position: absolute;
    top: 0px;
    width: 100%;
    height: 30px;
    border-bottom: 1px solid lightgray;
    font-size: 12px;
    display: flex;
    align-items: center;
    text-indent: 12px;
    color: rgb(252,85,49);
   }
   .main{
    position: absolute;
    top: 30px;
    width: 100%;
    bottom: 0px;
    overflow-x:hidden;
    overflow-y: auto;
   }
   .item{
    font-size: 12px;
    height: 30px;
    display: flex;
    align-items: center;
    text-indent: 12px;
    cursor: pointer;
   }
   .item:hover{
    background-color: lightgray;
   }
  </style>
 </head>
 <body>
  <div id="searchbox">
   <input id="searchinput" placeholder="c一下" />
   <button id="searchbtn"><img src="img/sc.png"></button>
   <div id="morebox">
    <div id="history">
     <div class="head">搜索历史</div>
     <div class="main"></div>
    </div>
    <div id="push">
     <div class="head">热门推荐</div>
     <div class="main">
      <div class="item">微软终于对JDK下手了</div>
      <div class="item">小米隔空充电技术</div>
      <div class="item">Linux常用命令大全</div>
      <div class="item">阿飞超努力又水文了</div>
      <div class="item">每天学一个jquery插件竟然没有插件!究竟是道德的沦丧,还是人性的扭曲</div>
     </div>
    </div>
   </div>
  </div>
 </body>
</html>
<script>
 $(document).ready(function(){
  //每次点击搜索就假如缓存之中
  //
  $(".item").click(function(){
   var str = $(this).text();
   $("#searchinput").val(str)
  })
   // localStorage["history"] = '[]'//清除一下缓存;
  drawhistory();
  $("#searchbtn").click(function(){
   var str = $("#searchinput").val();
   if(str&&str!=""){
    var arr = getSession();
    arr.push(str);
    localStorage["history"] = JSON.stringify(arr);
    drawhistory();
   }
  })
  getSession();
  //根据缓存找到历史,然后生成搜索历史
  function drawhistory(){
   var arr = getSession();
   $("#history .main .item").remove();
   arr.forEach(item=>{
    var $item = $("<div class='item'>"+item+"</div>");
    $item.appendTo($("#history .main"));
   })
  }
  //获得缓存
  function getSession(){
   var ses = localStorage["history"];
   var arr = ses==undefined?[]:JSON.parse(ses);
   return arr;
  }
 })
</script>

思路解释

1、布局是个硬伤,我也不知道我这个布局是不是最合适的,不过看着没毛病
2、然后历史部分就是存到localStorage里面,在合适的动作的地方处理成对应的效果放回dom里面

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery使用ajax_动力节点Java学院整理
Jul 05 jQuery
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
基于jQuery实现Ajax验证用户名是否可用实例
Mar 25 jQuery
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
jQuery实现获取及设置CSS样式操作详解
Sep 05 jQuery
Jquery获取radio选中值实例总结
Jan 17 jQuery
jQuery操作cookie的示例代码
Jun 05 jQuery
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
Jul 10 jQuery
jQuery 动画与停止动画效果实例详解
May 19 jQuery
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 jQuery
jquery插件实现图片悬浮
jQuery实现影院选座订座效果
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
jQuery treeview树形结构应用
Mar 24 #jQuery
jQuery实现鼠标拖动图片功能
Mar 04 #jQuery
ajax jquery实现页面某一个div的刷新效果
Mar 04 #jQuery
jquery实现广告上下滚动效果
Mar 04 #jQuery
You might like
NT IIS下用ODBC连接数据库
2006/10/09 PHP
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
JavaScript中的对象序列化介绍
2014/12/30 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
多个python文件调用logging模块报错误
2020/02/12 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
html5开发之viewport使用
2013/10/17 HTML / CSS
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
销售辞职报告范文
2014/01/12 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
电力培训心得体会
2014/09/02 职场文书
英语投诉信范文
2015/07/03 职场文书
合作合同协议书
2016/03/21 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS