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插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
Mar 25 jQuery
jquery中封装函数传递当前元素的方法示例
May 05 jQuery
jQuery动态追加页面数据以及事件委托详解
May 06 jQuery
jquery replace方法去空格
May 08 jQuery
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
Dec 24 jQuery
jQuery实现的两种简单弹窗效果示例
Apr 18 jQuery
JQuery实现ajax请求的示例和注意事项
Dec 10 jQuery
使vue实现jQuery调用的两种方法
May 12 jQuery
Vue项目中使用jquery的简单方法
May 16 jQuery
jquery实现的放大镜效果示例
Feb 24 jQuery
jQuery实现异步上传一个或多个文件
Aug 17 jQuery
基于jquery实现彩色投票进度条代码解析
Aug 26 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
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
javascript中传统事件与现代事件
2015/06/23 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
jQuery实现简单QQ聊天框
2020/08/27 jQuery
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
Django中的Signal代码详解
2018/02/05 Python
Python之列表的插入&amp;替换修改方法
2018/06/28 Python
python多进程重复加载的解决方式
2019/12/13 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
python中pickle模块浅析
2020/12/29 Python
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
现金出纳岗位职责
2014/03/15 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
企业法人代表任命书
2014/06/06 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
初中历史教学反思
2016/02/19 职场文书