vue-例5-19创建带提示的搜索框.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>创建带提示的搜索框</title>
    <style type="text/css">
        html,body{
            width: 100%;
            margin: 0;
            padding: 0;
        }
        .main{
            width: 99%;
            margin: 100px auto 0;
            box-sizing: border-box;
        }
        .main-box{
            float: left;
            width: 45%;
            padding: 40px 0;
            border: 1px solid #999;
            background-color: #f05a10;
        }
        .main-work{
            width: 80%;
            min-height: 60px;
            margin: 0 auto;
            border-radius: 30px;
            background-color: #ededed;
        }
        .main-work .main-work-top{
            height: 60px;
            padding: 5px 3%;
        }
        .main-work .main-work-top input[type="text"]{
            width: 75%;
            height: 50px;
            margin: 0;
            padding: 0;
            border: 1px solid #999;
            border-radius: 25px;
            outline: none;
            box-sizing: border-box;
            background-color: #dedede;
            text-indent: 1em;
            font-size: 20px;
        }
        .main-work .main-work-top button{
            width: 20%;
            height: 50px;
            margin: 0;
            padding: 0;
            background-color: #ff6600;
            box-sizing: border-box;
            border-radius: 25px;
            font-size: 24px;
            line-height: 46px;
            color: #fff;
        }
        .main-work .main-work-bottom{
            width: 100%;
            margin: 0;
            padding: 5px 5%;
            border:none;
            box-sizing: border-box;
            list-style: none;
        }
        .main-work .main-work-bottom li{
            width: 75%;
            height: 36px;
            margin: 0;
            padding: 0;
            border-radius: 18px;
            list-style: none;
            text-indent: 1em;
            font-size: 20px;
            line-height: 36px;
            color: #666;
            cursor: pointer;
        }
        .main-work .main-work-bottom li:hover{
            background-color: #ff6600;
        }
        .left{
            float: left;
        }
        .clearfix:after{
            content: ".";
            display: block;
            clear: both;
            height: 0;
            overflow: hidden;
            visibility: hidden;
        }
    </style>
</head>
<body>
    <div id="app">
        <div class="main clearfix">
            <main-work v-bind:btn="btnOne"></main-work>
        </div>
    </div>

    <script src="../js/vue.js"></script>

    <script>
        Vue.component('main-work',{
            template:`
                <div class="main-work">
                    <div class="main-work-top clearfix">
                        <input type="text" class="left" v-model="input" v-on:focus="showSelectListFunc">
                        <button class="right">{{btn}}</button>
                    </div>
                    <main-work-list v-on:setvalue="setvalue" v-bind:show="showSelectList"></main-work-list>
                </div>
            `,
            props:['btn'],
            data:function () {
                return{
                    input:'',
                    showSelectList:false
                }
            },
            methods:{
                showSelectListFunc:function () {
                    this.showSelectList = true;
                },
                hideSelectListFunc:function () {
                    this.showSelectList = false;
                },
                setvalue:function (list,show) {
                    this.input = list;
                    this.showSelectList = !show;
                }
            }
        });

        Vue.component('main-work-list',{
            template: `
                <ul class="main-work-bottom" v-show="show">
                    <li v-for="list in lists" v-on:click="selectList(list)">{{list}}</li>
                </ul>
            `,
            props: ['show'],
            data:function () {
                return {
                    lists:[
                        'html+css',
                        'html5+css3',
                        'javascript',
                        'react',
                        'vue',
                        'iview',
                        'angular'
                    ]
                }
            },
            methods: {
                selectList:function (list) {
                    this.$emit('setvalue',list,this.show);
                }
            }
        });

        let vm = new Vue({
            el:'#app',
            data:{
                btnOne:'查询'
            }
        })
    </script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾米大王

有你的支持,我会更有动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值