当前位置: 首页 > 知识库问答 >
问题:

vuejs如何传递图像url作为道具,用作css动画的css变量

程天佑
2023-03-14

我有一个具有悬停动画的组件,其中4个图像在循环中旋转:

动画:changeImg-1 2.5s线性无限

@keyframes changeImg-1 {
  0%, 100% { background-image: url('images/wel1.png'); }
  25% { background-image: url('images/wel2.png'); }
  50% { background-image: url('images/wel3.png'); }
  75% { background-image: url('images/wel4.png'); }
}

现在我想通过能够将图像字符串作为道具传递进来,使该组件可重用,这些字符串被指定为css变量,然后由动画拾取。

我已经用计算属性中的路径定义了css变量,然后在css中使用该路径:

computed: {
    userStyle () {
      return {
        '--myBackground': `url(${require('@/components/ImagesInText/images/wel1.png')})`,
      }
    }
  },

CSS:

.image {  
background:var(--myBackground); 
}

我无法工作的是从道具中提取图像路径并将其用于计算属性...

   props: {
    image: { type: String, default: '@/components/ImagesInText/images/wel1.png' },
  },

如果在下面执行此操作,则会出现错误:找不到模块“@/components/ImagesInText/images/wel1.png”

computed: {
    userStyle () {
      return {

        '--myBackground': `url(${require( this.image )})`,
      }
    }
  },

共有1个答案

傅自明
2023-03-14

使用可变路径/文件名时,require需要一些帮助。必须至少将路径的第一部分硬编码为字符串。

  • 例如,这项工作:
const filename = 'wel1.png';
require('@/components/ImagesInText/images/' + filename); // <-- The string is needed
  • 这也行:
const path = 'components/ImagesInText/images/wel1.png';
require('@/' + path); // <-- This is good enough too
  • 但这是行不通的:
js prettyprint-override">const fullpath = '@/components/ImagesInText/images/wel1.png';
require(fullpath); // <-- No. Can't infer the path from a variable only
 类似资料:
  • 我正在从我的数据库中调用一个产品图像url,在前端页面中,我有一些css对页面上的图像进行样式化。但是,我需要将产品图像的url传递到css,它指定了图像的url... 我的CSS: 显示背景图像的产品页面 如果将product-image放在div中,它将呈现产品图像。如何将此url传递到CSS中?所以没有-> -> 我将有 这可能吗?

  • 我正在使用react语义ui模态对象。打开模态的对象是一个道具。 我想在另一个组件中嵌入模态: 如何传递JSX代码(

  • 问题内容: 对于上面的动画CSS代码,我想知道是否有任何方法可以从Javascript 传递和作为参数传递。 问题答案: 使用CSS变量,您可以轻松地做到这一点:

  • 我尝试创建一个CSS动画,当你悬停在方框上时,它会显示使用CSS动画的div。我使用了以下站点作为参考。点击这里,但我似乎无法实现EFX。在我的站点上,我使用JqUERY实现了一个show and hide函数,我的addClass和RemoveClass可以正常工作,但总体来说,该函数并没有正常工作。有人能指引我正确的方向吗。 /**HTML**/ /*jquery**/ /**CSS动画**/

  • 问题内容: 我希望制作一个图像轮播,用户可以在其中通过单击箭头在图像之间切换。 但是,我只能使用HTML和CSS,而不能使用JavaScript(因此也不能使用jQuery)。我只需要基本设置;平滑过渡等不是必需的。 我该如何做到这一点? 问题答案: 这很容易!只需使用单选按钮和目标标签。 单选按钮的(必要的)行为是一次只能选择一个按钮,就像轮播中的图像一样。 演示版 请确保至少有一个input(

  • 我使用的是dev-express中的react-grid库,库中有一个表组件,我们可以向它传递单元格组件,在CustomCell中,我使用的是Material UI中的菜单 在上述情况下,菜单工作良好, 但是我想要传递道具到这个组件,我尝试了以下操作 在这种情况下菜单不工作,我想知道是否有一个替代的方法来实现第二种情况。