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实现选中行变色效果(实例讲解)
Jul 06 jQuery
jQuery实现滚动效果
Nov 17 jQuery
jQuery+ajax读取json数据并按照价格排序示例
Mar 28 jQuery
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
jQuery实现的简单拖拽功能示例【测试可用】
Aug 14 jQuery
jQuery实现动画、消失、显现、渐出、渐入效果示例
Sep 06 jQuery
jquery实现动态添加附件功能
Oct 23 jQuery
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
js/jQuery实现全选效果
Jun 17 jQuery
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
jQuery表单校验插件validator使用方法详解
Feb 18 jQuery
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
Mar 20 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
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
php计算年龄精准到年月日
2015/11/17 PHP
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
python3中函数参数的四种简单用法
2018/07/09 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
顶岗实习计划书
2014/01/10 职场文书
数学系个人求职信范文
2014/01/30 职场文书
买卖协议书范本
2014/04/21 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
网络营销策划方案
2014/06/04 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
2014年党的群众路线整改措施思想汇报
2014/10/12 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
银行求职信模板
2015/03/20 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书