好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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里面

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/weixin_44142582/article/details/115935029

查看更多关于jquery插件实现搜索历史的详细内容...

  阅读:49次