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正则验证注册页面经典实例
Jun 10 jQuery
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 jQuery
详解jQuery中的isPlainObject()使用方法
Feb 27 jQuery
jquery点击回车键实现登录效果并默认焦点的方法
Mar 09 jQuery
jquery实现动态添加附件功能
Oct 23 jQuery
Jquery的Ajax技术使用方法
Jan 21 jQuery
jQuery实现图片下载代码
Jul 18 jQuery
jquery 时间戳转日期过程详解
Oct 12 jQuery
用jQuery实现抽奖程序
Apr 12 jQuery
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
JQuery实现折叠式菜单的详细代码
Jun 03 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
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
5.PHP的其他功能
2006/10/09 PHP
PHP脚本数据库功能详解(上)
2006/10/09 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
javascript实现汉字转拼音代码分享
2015/04/20 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Python datetime时间格式化去掉前导0
2014/07/31 Python
python3.5仿微软计算器程序
2020/03/30 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
解决Python对齐文本字符串问题
2019/08/28 Python
如何在django中实现分页功能
2020/04/22 Python
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
2013年学期结束动员演讲稿
2014/01/07 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
会计的岗位职责
2014/03/15 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
团委书记的竞聘演讲稿
2014/04/24 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
如何用Python搭建gRPC服务
2021/06/30 Python