zoukankan      html  css  js  c++  java
  • Framework7 vue demo

    f7+vue测试页面,直接采用静态文件模式,因此不需要构建步骤,可以直接运行,商品图片来自淘宝,

    更新:css, svg, js资源地址改为 jsdelivr ,framework7-vue也有网络资源了,推荐jsdelivr资源很全面,

    问题:material-design-icon字体图标不显示,

    项目地址:https://gitee.com/stumpx/f7-vue-shop-demo

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <title>f7-vue-shop</title>
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/framework7@1.7.1/dist/css/framework7.material.css">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/framework7@1.7.1/dist/css/framework7.material.colors.css">
        <link rel="stylesheet" type="image/svg+xml" href="https://cdn.jsdelivr.net/npm/@icon/framework7-icons@0.9.2/framework7-icons.svg">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@icon/framework7-icons@0.9.2/framework7-icons.css">
        <link rel="stylesheet" type="image/svg+xml" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/fonts/fontawesome-webfont.svg">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.css">
        <link rel="stylesheet" type="image/svg+xml" href="https://cdn.bootcss.com/material-design-icons/3.0.1/iconfont/MaterialIcons-Regular.svg">
        <link rel="stylesheet" href="https://cdn.bootcss.com/material-design-icons/3.0.1/iconfont/material-icons.css">
    
        <style>
            .navbar a.link i + i,
            .navbar a.link i + span,
            .navbar a.link span + i,
            .navbar a.link span + span,
            .subnavbar a.link i + i,
            .subnavbar a.link i + span,
            .subnavbar a.link span + i,
            .subnavbar a.link span + span,
            .toolbar a.link i + i,
            .toolbar a.link i + span,
            .toolbar a.link span + i,
            .toolbar a.link span + span {
                margin-left: 0;
            }
    
            .tabbar-labels {
                height: 64px;
            }
    
            .tabbar-labels.toolbar-bottom ~ .page-content {
                padding-bottom: 64px;
            }
    
            .tabbar-labels a.link,
            .tabbar-labels a.tab-link {
                padding-top: 9px;
                padding-bottom: 7px;
            }
    
            .navbar-inner {
                overflow: inherit;
            }
    
            .navbar-inner :not(.subnavbar) {
                overflow: hidden;
            }
    
            .subnavbar {
                height: 44px;
                margin-top: -1px;
            }
    
            .subnavbar a.link {
                line-height: 14px;
                font-size: 14px;
                height: 100%;
            }
    
            .navbar-fixed.with-subnavbar .page-content {
                padding-top: 105px !important;
            }
        </style>
    
    </head>
    <body>
    
    <div id="app">
        <!-- Statusbar -->
        <f7-statusbar></f7-statusbar>
    
        <!-- Left Panel -->
        <f7-panel left reveal layout="dark">
            <f7-view id="left-panel-view" navbar-through :dynamic-navbar="true">
                <f7-pages>
                    <f7-page>
                        <f7-navbar title="Left Panel" sliding></f7-navbar>
                        <f7-block inner>
                            <p>Left panel content goes here</p>
                        </f7-block>
                        <f7-block-title>Load page in panel</f7-block-title>
                        <f7-list>
                            <f7-list-item link="/about/" title="About"></f7-list-item>
                            <f7-list-item link="/form/" title="Form"></f7-list-item>
                        </f7-list>
                        <f7-block-title>Load page in main view</f7-block-title>
                        <f7-list>
                            <f7-list-item link="/about/" title="About" link-view="#main-view" link-close-panel></f7-list-item>
                            <f7-list-item link="/form/" title="Form" link-view="#main-view" link-close-panel></f7-list-item>
                        </f7-list>
                    </f7-page>
                </f7-pages>
            </f7-view>
        </f7-panel>
    
        <!-- Right Panel -->
        <f7-panel right cover layout="dark">
            <f7-view id="right-panel-view" navbar-through :dynamic-navbar="true">
                <f7-pages>
                    <f7-page>
                        <f7-navbar title="Right Panel" sliding></f7-navbar>
                        <f7-block>
                            <p>Right panel content goes here</p>
                        </f7-block>
                        <f7-block-title>Load page in panel</f7-block-title>
                        <f7-list>
                            <f7-list-item link="/about/" title="About"></f7-list-item>
                            <f7-list-item link="/form/" title="Form"></f7-list-item>
                        </f7-list>
                        <f7-block-title>Load page in main view</f7-block-title>
                        <f7-list>
                            <f7-list-item link="/about/" title="About" link-view="#main-view" link-close-panel></f7-list-item>
                            <f7-list-item link="/form/" title="Form" link-view="#main-view" link-close-panel></f7-list-item>
                        </f7-list>
                    </f7-page>
                </f7-pages>
            </f7-view>
        </f7-panel>
    
        <!-- Main Views -->
        <f7-views theme="red">
            <f7-view id="main-view" toolbar-through :dynamic-navbar="true" main>
                <!-- Pages -->
                <f7-pages>
                    <page-home toolbar-through></page-home>
                </f7-pages>
            </f7-view>
        </f7-views>
    
        <!-- Popup -->
        <f7-popup id="popup">
            <f7-view navbar-fixed>
                <f7-pages>
                    <f7-page>
                        <f7-navbar title="Popup">
                            <f7-nav-right>
                                <f7-link close-popup>Close</f7-link>
                            </f7-nav-right>
                        </f7-navbar>
                        <f7-block>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque, architecto. Cupiditate laudantium rem nesciunt numquam, ipsam. Voluptates omnis, a inventore atque ratione aliquam. Omnis iusto nemo quos ullam obcaecati, quod.</f7-block>
                    </f7-page>
                </f7-pages>
            </f7-view>
        </f7-popup>
    
        <!-- Login Screen -->
        <f7-login-screen id="login-screen">
            <f7-view>
                <f7-pages>
                    <f7-page login-screen>
                        <f7-login-screen-title>Login</f7-login-screen-title>
                        <f7-list form>
                            <f7-list-item>
                                <f7-label>Username</f7-label>
                                <f7-input name="username" placeholder="Username" type="text"></f7-input>
                            </f7-list-item>
                            <f7-list-item>
                                <f7-label>Password</f7-label>
                                <f7-input name="password" type="password" placeholder="Password"></f7-input>
                            </f7-list-item>
                        </f7-list>
                        <f7-list>
                            <f7-list-button title="Sign In" close-login-screen></f7-list-button>
                            <f7-list-label>
                                <p>Click Sign In to close Login Screen</p>
                            </f7-list-label>
                        </f7-list>
                    </f7-page>
                </f7-pages>
            </f7-view>
        </f7-login-screen>
    </div>
    
    <!-- toolbar Component Template -->
    <template id="com-toolbar">
        <f7-toolbar bottom tabbar labels class="row no-gutter">
            <f7-link icon-f7="home" :href="active == 'home'?'#':'/home/'" text="首页" class="col-auto" ignore-cache></f7-link>
            <f7-link icon-f7="search" :href="active == 'search'?'#':'/search/'" text="搜索" class="col-auto" ignore-cache></f7-link>
            <f7-link icon-f7="info" :href="active == 'center'?'#':'/center/'" text="我的" class="col-auto" ignore-cache></f7-link>
        </f7-toolbar>
    </template>
    
    <!-- center Page Template -->
    <template id="page-center">
        <f7-page no-navbar name="center">
            <f7-list media-list class="no-margin-v">
                <ul class="no-border-v">
                    <li>
                        <a href="/info/" class="item-link">
                            <div class="item-content">
                                <div class="item-media">
                                    <!--<img src='img/info.png' style="max-80px;max-height:800px;border-radius:50%">-->
                                    <i class="icon fa fa-opencart bg-red color-white align-center" style="font-size: 36px; 60px;height: 60px;line-height: 60px;border-radius: 50%;"></i>
                                </div>
                                <div class="item-inner">
                                    <div class="item-title">Title</div>
                                    <div class="item-title-row">
                                        <div class="item-subtitle">Subtitle</div>
                                    </div>
                                    <div class="item-text">Describe</div>
                                </div>
                            </div>
                        </a>
                    </li>
                </ul>
            </f7-list>
            <f7-list class="no-margin-v">
                <f7-list-item link="/cart/" title="购物车" badge="5" badge-color="red"></f7-list-item>
                <f7-list-item link="/order/" title="我的订单"></f7-list-item>
                <f7-list-item link="/order/type/1" title="待付款"></f7-list-item>
                <f7-list-item link="/order/type/2" title="待收货"></f7-list-item>
                <f7-list-item link="/order/type/3" title="待评价"></f7-list-item>
                <f7-list-item link="/msg/" title="我的消息" badge="5" badge-color="red"></f7-list-item>
            </f7-list>
            <com-toolbar :active="active"></com-toolbar>
        </f7-page>
    </template>
    
    <!-- search Page Template -->
    <template id="page-search">
        <f7-page navbar-through hide-navbar-on-scroll with-subnavbar name="search">
            <f7-navbar>
                <f7-nav-left>
                    <f7-link>
                        <f7-icon fa="opencart"></f7-icon>
                    </f7-link>
                </f7-nav-left>
                <f7-searchbar cancel-link="Cancel" placeholder="搜索" search-list="#search-list" :clear="true" @searchbar:search="onSearch" @searchbar:enable="onEnable" @searchbar:disable="onDisable" @searchbar:clear="onClear"></f7-searchbar>
                <f7-nav-right>
                    <f7-link>
                        <f7-icon fa="shopping-cart"></f7-icon>
                    </f7-link>
                </f7-nav-right>
                <f7-subnavbar sliding class="no-padding-h">
                    <f7-link>综合排序</f7-link>
                    <f7-link>销量优先</f7-link>
                    <f7-link>
                        <f7-icon fa="filter"> 筛选</f7-icon>
                    </f7-link>
                    <f7-link v-if="showType == 'list'" @click.stop.prevent="showType = 'two'">
                        <f7-icon fa="th-list"></f7-icon>
                    </f7-link>
                    <f7-link v-if="showType == 'two'" @click.stop.prevent="showType = 'one'">
                        <f7-icon fa="th-large"></f7-icon>
                    </f7-link>
                    <f7-link v-if="showType == 'one'" @click.stop.prevent="showType = 'list'">
                        <f7-icon fa="square"></f7-icon>
                    </f7-link>
                </f7-subnavbar>
            </f7-navbar>
            <f7-list class="searchbar-not-found">
                <f7-list-item title="Nothing found"></f7-list-item>
            </f7-list>
            <f7-list v-if="showType == 'list'" media-list class="searchbar-found no-margin-v" id="search-list">
                <ul class="no-border-v">
                    <li v-for="n in dataArr" :key="n">
                        <a href="/item/" class="item-link">
                            <div class="item-content">
                                <div class="item-media">
                                    <img src='https://img.alicdn.com/bao/uploaded/i3/758626821/TB2QzRZXWryQeBjSszdXXaL.XXa_!!758626821.jpg_q50.jpg' style="max-60px;max-height:60px;">
                                </div>
                                <div class="item-inner">
                                    <div class="item-title-row">
                                        <div class="item-title">产品名称{{n}}</div>
                                    </div>
                                    <div class="item-subtitle">¥123</div>
                                    <div class="item-text">
                                        <f7-grid>
                                            <f7-col class="align-left">免运费</f7-col>
                                            <f7-col class="align-center">123人付款</f7-col>
                                            <f7-col class="align-right">上海</f7-col>
                                        </f7-grid>
                                    </div>
                                </div>
                            </div>
                        </a>
                    </li>
                </ul>
            </f7-list>
            <f7-block v-if="showType == 'two'" class="no-padding-h no-margin-v" style="margin-bottom:-5px;">
                <f7-grid>
                    <f7-card v-for="n in dataArr" :key="n" class="col-50 no-margin-top no-margin-h" style=" calc((100% - 35px*1)/ 2);margin-bottom:10px">
                        <f7-card-header class="no-border align-bottom eq-w-h" style="background-image:url(https://img.alicdn.com/bao/uploaded/i3/758626821/TB2QzRZXWryQeBjSszdXXaL.XXa_!!758626821.jpg_q50.jpg);background-size:cover;padding-bottom:50%;"></f7-card-header>
                        <f7-card-footer class="no-padding-v">产品名称{{n}}</f7-card-footer>
                    </f7-card>
                </f7-grid>
            </f7-block>
            <f7-block v-if="showType == 'one'" class="no-padding-h no-margin-v" style="margin-bottom:-5px;">
                <f7-grid>
                    <f7-card v-for="n in dataArr" class="col-100 no-margin-top no-margin-h" style=" calc((100% - 35px*0)/ 1);margin-bottom:10px">
                        <f7-card-header class="no-border align-bottom eq-w-h" style="background-image:url(https://img.alicdn.com/bao/uploaded/i3/758626821/TB2QzRZXWryQeBjSszdXXaL.XXa_!!758626821.jpg_q50.jpg);background-size:cover;padding-bottom:50%;"></f7-card-header>
                        <f7-card-footer class="no-padding-v">产品名称{{n}}</f7-card-footer>
                    </f7-card>
                </f7-grid>
            </f7-block>
            <com-toolbar :active="active"></com-toolbar>
        </f7-page>
    </template>
    
    <!-- home Page Template -->
    <template id="page-home">
        <f7-page navbar-through name="home">
            <f7-navbar>
                <f7-nav-left>
                    <f7-link href="/index/">
                        <f7-icon fa="opencart"></f7-icon>
                    </f7-link>
                </f7-nav-left>
                <f7-searchbar cancel-link="Cancel" placeholder="搜索" :clear="true"></f7-searchbar>
                <f7-nav-right>
                    <f7-link>
                        <f7-icon fa="shopping-cart"></f7-icon>
                    </f7-link>
                </f7-nav-right>
            </f7-navbar>
            <f7-swiper init pagination :params="{autoplay:true, loop:true, speed:2500, spaceBetween: 1, autoplayDisableOnInteraction: false}" style="min-height:100px;">
                <f7-swiper-slide v-for="n in 5" :key="n"><img src="https://gw.alicdn.com/imgextra/TB237WpbQfb_uJkHFCcXXXagFXa_!!181-0-lubanu.jpg_q50.jpg" :title="n" style="100%;height:130px;background:lightgray"/></f7-swiper-slide>
            </f7-swiper>
            <f7-block-title class="row no-margin-top">
                <span>热卖</span>
                <f7-link href="search/type/1">更多>></f7-link>
            </f7-block-title>
            <f7-block class="no-padding-h" style="margin-bottom:-5px;">
                <f7-grid>
                    <f7-card v-for="n in 6" :key="n" class="col-50 no-margin-top no-margin-h" style=" calc((100% - 35px*1)/ 2);margin-bottom:10px">
                        <f7-card-header class="no-border align-bottom eq-w-h" style="background-image:url(https://img.alicdn.com/bao/uploaded/i3/758626821/TB2QzRZXWryQeBjSszdXXaL.XXa_!!758626821.jpg_q50.jpg);background-size:cover;padding-bottom:50%;"></f7-card-header>
                        <f7-card-footer class="no-padding-v">产品名称{{n}}</f7-card-footer>
                    </f7-card>
                </f7-grid>
            </f7-block>
            <f7-block-title class="no-padding-top row">
                <span>推荐</span>
                <f7-link href="search/type/1">更多>></f7-link>
            </f7-block-title>
            <f7-block class="no-padding-h no-margin-bottom">
                <f7-grid>
                    <f7-card v-for="n in 3" :key="n" class="col-33 no-margin-top no-margin-h" style=" calc((100% - 35px*2)/ 3);margin-bottom:10px">
                        <f7-card-header class="no-border align-bottom eq-w-h" style="background-image:url(https://img.alicdn.com/bao/uploaded/i3/758626821/TB2QzRZXWryQeBjSszdXXaL.XXa_!!758626821.jpg_q50.jpg);background-size:cover;padding-bottom:50%;"></f7-card-header>
                        <f7-card-footer class="no-padding-v">产品名称{{n}}</f7-card-footer>
                    </f7-card>
                </f7-grid>
                </f7-grid>
            </f7-block>
            <com-toolbar :active="active"></com-toolbar>
        </f7-page>
    </template>
    
    
    <script src="https://cdn.jsdelivr.net/npm/framework7@1.6.5/dist/js/framework7.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/framework7-vue@0.9.2/dist/framework7-vue.js"></script>
    
    <script>
        // Init F7 Vue Plugin
        Vue.use(Framework7Vue)
    
        // Init Page Components
        Vue.component('com-toolbar', {
            props: ['active'],
            template: '#com-toolbar'
        })
        Vue.component('page-center', {
            template: '#page-center',
            data: function () {
                return {
                    active: 'center'
                };
            }
        })
        Vue.component('page-search', {
            template: '#page-search',
            data: function () {
                var arr = [];
                for (var i = 0; i < 20; i++) arr.push(i + 1);
                return {
                    dataArr: arr,
                    showType: 'list',
                    active: 'search'
                };
            },
            methods: {
                onSearch: function (query, found) {
                    console.log('search', query);
                },
                onClear: function (event) {
                    console.log('clear');
                },
                onEnable: function (event) {
                    console.log('enable');
                },
                onDisable: function (event) {
                    console.log('disable');
                },
            }
        })
        Vue.component('page-home', {
            template: '#page-home',
            data: function () {
                return {
                    active: 'home'
                };
            }
        })
    
        // Init App
        var app = new Vue({
            el: '#app',
            // Init Framework7 by passing parameters here
            framework7: {
                root: '#app',
                /* Uncomment to enable Material theme: */
                material: true,
                modalTitle: '',
                modalButtonOk: '确认',
                modalButtonCancel: '取消',
                modalPreloaderTitle: '加载中...',
                cache: false,
                domCache: false,
                pushState: true,
                swipePanel: 'left',
                swipeBackPage: false,
                swipePanelThreshold: 15,
                smartSelectBackText: '返回',
                smartSelectPickerCloseText: '完成',
                smartSelectPopupCloseText: '关闭',
                swipePanelOnlyClose: true,
                preloadPreviousPage: false,
                uniqueHistory: false,
                routes: [{
                    path: '/center/',
                    component: 'page-center'
                },
                    {
                        path: '/search/',
                        component: 'page-search'
                    },
                    {
                        path: '/search/type/:typeId/',
                        component: 'page-search'
                    },
                    {
                        path: '/home/',
                        component: 'page-home'
                    }
                ],
            }
        });
    </script>
    
    </body>
    </html>
  • 相关阅读:
    Delphi CxGrid 用法详解
    Delphi数据库字段
    如何使DevExpress的cxGrid内容只读?
    win10系统没有Windows照片查看器怎么办 win10系统下如何找回Windows照片查看器
    Delphi XE10 dxLayoutControl 控件应用指南
    在 docker 中查看容器日志
    处理 SQL SERVER 数据库的连接查询相关问题
    nginx 禁止 ip 地址访问
    查看 SQL SERVER 的连接情况
    Linux 下同步时间,另附 NTP 服务器地址
  • 原文地址:https://www.cnblogs.com/stumpx/p/6671021.html
Copyright © 2011-2022 走看看