>웹 프론트엔드 >JS 튜토리얼 >Bootrap 및 Vue는 Baidu 검색 기능 예제를 모방하여 구현합니다.

Bootrap 및 Vue는 Baidu 검색 기능 예제를 모방하여 구현합니다.

小云云
小云云원래의
2018-01-02 13:48:171910검색

Vue를 사용하여 Baidu의 검색 인터페이스를 호출하여 간단한 검색 기능을 구현하세요. 이 글은 주로 Baidu와 같은 검색 기능을 구현하기 위한 Bootrap과 Vue의 사용을 소개합니다. 매우 훌륭하고 참고할만한 가치가 있습니다. 도움이 필요한 모든 사람에게 도움이 되기를 바랍니다.

검색창 스타일은 Bootstrap을 기반으로 합니다. 물론 바이두 검색과 유사하게 스타일을 간단히 조정했습니다. 코드는 다음과 같습니다


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>百度搜索</title>
  <style type="text/css">
    .gray{
      background-color: #eee;
    }
    .listyle{
      font-size: 16px;
      line-height: 35px;
      padding-left: 16px;
    }
    .ulstyle{
      border:1px solid #ccc;
      border-top: none;
    }
  </style>
  <link rel="stylesheet" type="text/css" href="bootstrap.min.css" rel="external nofollow" >
  <script type="text/javascript" src="vue.js"></script>
  <script type="text/javascript" src="vue-resource.js"></script>
  <script type="text/javascript">
    window.onload = function(){
      new Vue({
        el: ".container",
        data: {
          myData:[],
          txt:"",
          nowIndex:-1
        },
        methods:{
          get:function(event){
            if(event.keyCode==38 || event.keyCode==40){
              return;
            }
            if(event.keyCode==13){
              window.open("https://www.baidu.com/s?wd="+this.txt);
              this.txt="";
            }
            this.$http.jsonp("https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su",{
              wd:this.txt
            },{
              jsonp:"cb"
            }).then(function(res){
              this.myData=res.data.s
            },function(res){
              alert(res.status);
            });
          },
          changeDown:function(){
            this.nowIndex++;
            if(this.nowIndex==this.myData.length){
              this.nowIndex=0;
              this.txt=this.myData[0];
            }else{
              this.txt=this.myData[this.nowIndex];
            }
          },
          changeUp:function(){
            this.nowIndex--;
            if(this.nowIndex==-1){
              this.nowIndex=this.myData.length-1;
              this.txt=this.myData[this.nowIndex];
            }else{
              this.txt=this.myData[this.nowIndex];
            }
          },
          mouseOver:function(n){
            this.nowIndex=n;
            this.txt=this.myData[this.nowIndex];
          },
          getMsg:function(){
            window.open("https://www.baidu.com/s?wd="+this.txt);
            this.txt="";
          }
        }
      });
    }
  </script>
</head>
<body>
  <br>
  <p class="container">
    <p class="input-group">
      <input type="text" class="form-control input-lg" placeholder="请输入关键字" v-model="txt" @keyup="get($event)" @keydown.down="changeDown()" @keydown.up="changeUp()">
      <span class="input-group-btn">
        <button class="btn btn-default btn-lg" type="button" @click="getMsg()">搜索</button>
      </span>
    </p>
    <ul class="list-unstyled ulstyle" v-show="myData.length!=0">
      <li v-for="item in myData" :class={gray:$index==nowIndex,listyle:true} @mouseover="mouseOver($index)" @click="getMsg()">{{item}}</li>
    </ul>
  </p>
</body>
</html>

효과는 다음과 같습니다

Bootrap 및 Vue는 Baidu 검색 기능 예제를 모방하여 구현합니다.

Bootrap 및 Vue는 Baidu 검색 기능 예제를 모방하여 구현합니다.

다들 익히셨나요? 서둘러서 한번 시도해 보세요.

관련 권장 사항:

jQuery에서 키보드 입력 검색 기능을 구현하는 방법에 대한 자세한 설명

jQuery에서 검색 기능을 구현하고 검색 관련 콘텐츠를 표시합니다.

jQuery에서 프런트 엔드 검색 기능을 구현하는 방법

위 내용은 Bootrap 및 Vue는 Baidu 검색 기능 예제를 모방하여 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.