vue动画如何实现只经历运动而不隐藏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue动画如何实现只经历运动而不隐藏相关的知识,希望对你有一定的参考价值。

如何让目标元素不经历v-if或 v-show的消失隐藏,而只是单纯的变换位置

参考技术A 定义一个 transition 过渡,做 class 切换就行了,或者js修改 css属性就行了

如何在 vue 中隐藏日期选择器的默认日历图标

【中文标题】如何在 vue 中隐藏日期选择器的默认日历图标【英文标题】:How to hide default calendar icon from datepicker in vue 【发布时间】:2022-01-14 08:11:05 【问题描述】:

我在 vue 中有一个输入组件,我将类型作为日期给出。

如您所见,黑色图标是 html 的默认设置。而我想要实现的,首先我想点击整个输入字段来选择日期,而不是只点击黑色图标。另外,我想删除黑色图标。

这是我在 vue 中的输入组件:

<template>
  <div>
    <div v-bind:class="row: rowStyle, 'form-group': !smallSize">
      <label v-if="label" for=inputName v-bind:class="labelClass" :style="labelStyle"> label </label>
      <div class="input-group" v-bind:class="inputColumnAmount">
        <div v-if="inputPrefix" class="input-group-prepend">
          <span v-html="inputPrefix"/>
        </div>
        <input
            v-if="inputType == 'text' || inputType == 'email' || inputType == 'password' || inputType == 'date'"
            :type="inputType"
            class="form-control"
            v-bind:class="inputClasses"
            v-on:focusout="$emit('value', $event.target.value)"
            :id="inputName"
            :placeholder="placeholder"
            :value="value"
            :pattern="pattern"
            :maxlength="maxlength"
            :disabled="disabled">
        <div v-if="inputSuffix" class="input-group-append">
          <span v-html="inputSuffix"/>
        </div>
          <div v-if="icon" class="input-group-append">
              <div class="input-group-text"><i :class="icon"></i></div>
          </div>
      </div>
    </div>
  </div>
</template>
<script>
  import v4 as uuidv4 from 'uuid';
  import GENERAL_COMPONENT_CONSTANTS from "../constants/GeneralComponentConstants";

  export default 
    props: 
      label:  type: String, default: '' ,
      error:  type: String, default: '' ,
      inputType:  type: String, default: 'text' ,
      componentStyle:  type: String, default: GENERAL_COMPONENT_CONSTANTS.componentStyle.Row ,
      inputPrefix:  type: String, default: '' ,
      inputSuffix:  type: String, default: '' ,
        icon:  type: String, default: '' ,
      labelColumns:  type: Number | String, default: 3 ,
      placeholder:  type: String, default: "" ,
      value:  type: String | Number, default: "" ,
      pattern:  type: String, default: "" ,
      maxlength:  type: String, default: "150" ,
      disabled:  type: Boolean, default: false ,
      smallSize:  type: Boolean, default: false ,
    ,
    data() 
      return 
        inputName: "input-" + uuidv4(),
      
    ,
    computed: 
      rowStyle: function() 
        return this.componentStyle == GENERAL_COMPONENT_CONSTANTS.componentStyle.Row;
      ,
      labelClass: function() 
        let labelClass = "";
        if (this.rowStyle) 
          labelClass += 'col-form-label ';
          labelClass += this.labelColumnAmount;
        
        return labelClass;
      ,
      labelColumnAmount: function () 
        return "col-sm-" + this.labelColumns;
      ,
      inputColumnAmount: function () 
        if (!this.rowStyle) 
          return '';
         else if (this.label) 
          return "col-sm-" + (12 - this.labelColumns);
         else 
          return "col-sm-12";
        
      ,
      labelStyle() 
        if (this.disabled) 
          return "color: #6c757d;";
         else 
          return "";
        
      ,
      inputClasses() 
        return 
          'is-invalid': this.error,
          'form-control-sm': this.smallSize,
        ;
      
    ,
  
</script>

在这里,我是如何使用它的:

<cc-input-component
            label="Create from"
            labelColumns=4
            inputType="date"
            :value="newAvailabilitySetting.from_date"
            v-on:value="newAvailabilitySetting.from_date = $event"
            icon="fa fa-calendar"/>

任何建议将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

首先你应该设置一个类输入组件,然后你可以隐藏默认图标

 input[type="date"]::-webkit-inner-spin-button,
input[type="date"]::-webkit-calendar-picker-indicator 
    display: none;
    -webkit-appearance: none;

【讨论】:

是的,我试过了,但是当我隐藏图标时,我无法打开日期选择器,因为它只有在点击图标时才会打开 你能举个例子让我更好地帮助你吗? codepen.io 或 jsfiddle.net

以上是关于vue动画如何实现只经历运动而不隐藏的主要内容,如果未能解决你的问题,请参考以下文章

CSS效果实现与源码

vue进入页面两秒后转盘转动

QT 中如何实现一个简单的动画

[求助]wp中如何使用路径动画,让一个控件沿着曲线或正弦曲线运动

Solidworks如何制作动画

vue中如何编写可复用的组件?