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实现全选、全不选以及单选功能
Mar 23 jQuery
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
jQuery返回定位插件详解
May 15 jQuery
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 jQuery
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
Jun 12 jQuery
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
jQuery 改变P标签文本值方法
Feb 24 jQuery
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 jQuery
Jquery实现获取子元素的方法分析
Aug 24 jQuery
jquery实现有过渡效果的tab切换
Jul 17 jQuery
jQuery实现tab栏切换效果
Dec 22 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
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
第十四节--命名空间
2006/11/16 PHP
鸡肋的PHP单例模式应用详解
2013/06/03 PHP
深入apache host的配置详解
2013/06/09 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
基于jquery 的一个progressbar widge
2010/10/29 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
Javascript实现字数统计
2015/07/03 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
vue通过数据过滤实现表格合并
2020/11/30 Javascript
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
元旦晚会邀请函
2014/01/27 职场文书
高三学习决心书
2014/03/11 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
Python实现为PDF去除水印的示例代码
2022/04/03 Python