美文网首页
Material Design风格神框架vuetify 学习笔记

Material Design风格神框架vuetify 学习笔记

作者: 熊爸天下_56c7 | 来源:发表于2021-09-22 09:55 被阅读0次

    一. 轮播

    1. 最基本的轮播

    v-carousel 组件用于在循环计时器上显示大量可视内容。

        <v-carousel>
          <v-carousel-item src="~assets/pic1.jpg"> </v-carousel-item>
          <v-carousel-item src="~assets/pic2.jpg"> </v-carousel-item>
          <v-carousel-item src="~assets/pic3.jpg"> </v-carousel-item>
          <v-carousel-item src="~assets/pic4.jpg"> </v-carousel-item>
        </v-carousel>
    

    我们可以看到, 图片不会轮播,需要手动点击

    2. 自动轮播 cycle

    (1). 自动轮播

    我们可以通过cycle属性使其自动轮播

    <v-carousel cycle>
    
    (2). 轮播时间间隔 interval

    默认轮播间隔6s. 我们可以通过interval设置其轮播间隔

    <v-carousel cycle interval='1000'>
    
    (3). 轮播是否连续? continuous

    我们可以通过continuous设置其轮播是否是连续执行

    默认true(连续执行),
    也可以设置为false,这样第一次轮播轮播到最后一张图就会停止

    <v-carousel cycle interval='1000' :continuous="false"> 
    
    (4). 轮播是否连续? continuous

    我们可以通过interval设置其轮播间隔

    <v-carousel cycle interval='1000'>
    

    我们可以通过interval设置其轮播间隔

    <v-carousel cycle interval='1000'>
    

    3. 轮播图反向进入 reverse

    正常情况下, 我们的轮播图从右侧划入, 如果设置了 reverse 属性, 轮播图就会从左侧划入

    <v-carousel cycle interval='2000' reverse>
    

    4. 显示/隐藏 下一个/前一个 导航的箭头show-arrows

    <v-carousel cycle interval='2000' :show-arrows="false">
    

    5. hover才显示 下一个/前一个 导航的箭头show-arrows-on-hover

    <v-carousel cycle interval='2000' show-arrows-on-hover>
    

    6. 垂直轮播 vertical

    <v-carousel cycle interval='2000' vertical>
    

    诡异的是, 这种状态下, 轮播工具栏还是水平轮播的

    7. 垂直工具栏 vertical-delimiters

    如果需要垂直工具栏, 则使用vertical-delimiters, 垂直工具栏也可以用在水平轮播中

     <v-carousel cycle interval='2000' vertical vertical-delimiters>
    

    8. 过渡动画 transition

        <v-carousel cycle interval='2000'>
          <v-carousel-item src="~assets/pic1.jpg" transition="fade-transition"> </v-carousel-item>
          <v-carousel-item src="~assets/pic2.jpg" transition="fade-transition"> </v-carousel-item>
          <v-carousel-item src="~assets/pic3.jpg" transition="fade-transition"> </v-carousel-item>
          <v-carousel-item src="~assets/pic4.jpg" transition="fade-transition"> </v-carousel-item>
        </v-carousel>
    

    9. 轮播分隔符样式 delimiter-icon

    <v-carousel cycle interval='2000'  delimiter-icon="mdi-minus">
    

    10. 隐藏轮播分隔符背景颜色 hide-delimiter-background

    <v-carousel cycle interval='2000'  hide-delimiter-background>
    

    11. 隐藏轮播分隔符 hide-delimiters

    <v-carousel cycle interval="2000" hide-delimiters>
    

    12. 自定义箭头 v-slot:prev/v-slot:next

    我们可以使用 v-slot:prevv-slot:next

        <v-carousel cycle interval="2000">
          <template v-slot:prev="{ on, attrs }">
            <v-btn text fab v-bind="attrs" v-on="on">上一页</v-btn>
          </template>
          <template v-slot:next="{ on, attrs }">
            <v-btn text fab v-bind="attrs" v-on="on">下一页</v-btn>
          </template>
          <v-carousel-item src="~assets/pic1.jpg" transition="fade-transition">
          </v-carousel-item>
          <v-carousel-item src="~assets/pic2.jpg" transition="fade-transition">
          </v-carousel-item>
          <v-carousel-item src="~assets/pic3.jpg" transition="fade-transition">
          </v-carousel-item>
          <v-carousel-item src="~assets/pic4.jpg" transition="fade-transition">
          </v-carousel-item>
        </v-carousel>
    

    13. 控制显示某一幅 v-model

    我们可以使用v-model来指定我们显示哪一张,
    value从0开始计

    <template>
      <div>
        <br />
        <v-carousel v-model="show_index">
          <v-carousel-item src="~assets/pic0.jpg" transition="fade-transition">
          </v-carousel-item>
          <v-carousel-item src="~assets/pic1.jpg" transition="fade-transition">
          </v-carousel-item>
          <v-carousel-item src="~assets/pic2.jpg" transition="fade-transition">
          </v-carousel-item>
          <v-carousel-item src="~assets/pic3.jpg" transition="fade-transition">
          </v-carousel-item>
        </v-carousel>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return { show_index: 1 };
      },
    };
    </script>
    

    14. 使用轮播图

    灵活使用轮播图, 我们甚至能创造一个步骤控件, 因为步骤条也好, 轮播图也好, 他们都基于 v-window组件

    <template>
      <div>
        <br />
        <v-card class="mx-auto" max-width="500" color="#ddd">
          <v-card-title class="text-h5 font-weight-regular justify-space-between">
            <span>{{ current_title }}</span>
            <v-avatar
              color="primary lighten-2"
              class="subheading white--text"
              size="30"
              v-text="step"
            ></v-avatar>
          </v-card-title>
          <v-carousel
            v-model="step"
            :show-arrows="false"
            hide-delimiters
            transition="fade-transition"
          >
            <v-carousel-item :value="1" transition="fade-transition">
              <v-card-text>
                <v-text-field
                  label="用户名"
                  placeholder="请输入用户名"
                ></v-text-field>
                <v-text-field label="请输入当前密码" type="password"></v-text-field>
                <span class="text-caption grey--text text--darken-1">
                  如果忘记密码,请点击:
                </span>
                <a class="text-caption" href="">忘记密码</a>
              </v-card-text>
            </v-carousel-item>
            <v-carousel-item :value="2" transition="fade-transition">
              <v-card-text>
                <v-text-field label="请输入新密码" type="password"></v-text-field>
                <v-text-field
                  label="请再次输入新密码"
                  type="password"
                ></v-text-field>
              </v-card-text>
            </v-carousel-item>
            <v-carousel-item :value="3" transition="fade-transition">
              <div class="pa-4 text-center">
                <v-avatar size="100" color="success" class="mb-5">
                  <v-icon size="80" dark>mdi-check</v-icon>
                </v-avatar>
                <h3 class="text-h6 font-weight-light mb-2">密码修改成功!</h3>
                <span class="text-caption grey--text">请您牢记新密码!</span>
              </div>
            </v-carousel-item>
          </v-carousel>
    
          <v-card-actions>
            <v-btn color="error" :disabled="step === 1" text @click="step--">
              返回
            </v-btn>
            <v-spacer></v-spacer>
            <v-btn :disabled="step === 3" color="primary" depressed @click="step++">
              下一步
            </v-btn>
          </v-card-actions>
        </v-card>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return { step: 1, current_title: "第一步: 请输入现在的密码" };
      },
      watch: {
        step(v) {
          switch (v) {
            case 1:
              this.current_title = "第一步: 请输入现在的密码";
              break;
            case 2:
              this.current_title = "第二步: 请输入新密码";
              break;
            case 3:
              this.current_title = "第三步: 完成";
              break;
            default:
              break;
          }
        },
      },
    };
    </script>
    

    二. 蒙版 v-overlay

    v-overlay 组件用于强调特定元素或它的一部分。 它向用户发出应用程序内状态变化的信号,可用于创建加载器、对话框等。

    <template>
      <div class="ma-4">
        <v-btn color="success" @click="open_overlay">text</v-btn>
        <v-overlay :value="overlay_flag"></v-overlay>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return { overlay_flag: false };
      },
      methods: {
        open_overlay() {
          this.overlay_flag= true
          setTimeout(() => {
          this.overlay_flag= false; 
          }, 3000);
        }
      },
    };
    </script>
    

    2. 透明度

        <v-overlay opacity="0.8" :value="overlay_flag"></v-overlay>
    

    3. 遮罩中的按钮

    <template>
      <div class="ma-4">
        <v-btn color="success" @click="overlay_flag = true">text</v-btn>
        <v-overlay opacity="0.8" :value="overlay_flag">
          <v-btn color="info" @click="overlay_flag = false">hide</v-btn>
        </v-overlay>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return { overlay_flag: false };
      },
    };
    </script>
    

    4. 遮罩加载动画

    <template>
      <div class="ma-4">
        <v-btn color="success" @click="open_overlay">text</v-btn>
        <v-overlay :value="overlay_flag"
          ><v-progress-circular indeterminate size="64"></v-progress-circular
        ></v-overlay>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return { overlay_flag: false };
      },
      methods: {
        open_overlay() {
          this.overlay_flag = true;
          setTimeout(() => {
            this.overlay_flag = false;
          }, 3000);
        },
      },
    };
    </script>
    

    相关文章

      网友评论

          本文标题:Material Design风格神框架vuetify 学习笔记

          本文链接:https://www.haomeiwen.com/subject/npaqwltx.html