- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试建立一个 Gatsby 的博客。
在查看文档时,我遇到了 Mdx ,一种在 Markdown 文件中使用 React 组件的方法(顺便说一句,这是一个很棒的概念!)。
但是,我很快遇到了一个限制:目前 mdx 似乎只支持“Gatsby images”。例如,如果我将其放入 .mdx 文件中...
![Chinese Salty Egg](./salty_egg.jpg)
... 此代码将生成一个 Gatsby 图像。这很好,但现在如果我想生成“经典”图像怎么办?一些图书馆喜欢 React Slick Carousel需要一个简单的 <img>
标签。
例如,以下 .mdx 代码将不起作用:
# Introduction
import Slider from "react-slick";
export const settings = {
focusOnSelect: true,
infinite: true,
slidesToShow: 3,
slidesToScroll: 1,
speed: 500
};
<Slider {...settings}>
<div>
<img src={"./salty_egg.jpg"}/>
</div>
<div>
<img src={"./salty_egg_2.jpg"}/>
</div>
</Slider>
(参见相应的 GH 问题 here )
我发现让它工作的唯一方法是使用 shortcodes和进口:
index.mdx
---
title: Hello World
date: "2015-05-01T22:12:03.284Z"
path: "/first-post"
---
import image1 from "./assets/slick/salty_egg.jpg";
import image2 from "./assets/slick/salty_egg_2.jpg";
<SlickCarousel
settings={{
infinite: true,
slidesToShow: 1,
slidesToScroll: 1,
speed: 500,
}}
images={[
{
src: image1,
alt: "hip",
},
{
src: image2,
alt: "hop",
},
]}
/>
layout.js
import { MDXProvider } from "@mdx-js/react";
import { Message } from "theme-ui";
import SlickCarousel from "./post/slick-carousel";
const shortcodes = {SlickCarousel };
const layoutContent = data => (
<React.Fragment>
<GlobalStyle />
<main
style={{
background: `white`,
}}
>
<MDXProvider components={shortcodes}>{children}</MDXProvider>
</main>
</React.Fragment>
post/slick-carousel.js
import React from "react";
import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
const SlickCarousel = ({ settings, images }) => (
<Slider {...settings}>
{images.map((image, i) => (
<div key={i}>
<img width="350" src={`${image.src}`} alt={`${image.alt}`}></img>
</div>
))}
</Slider>
);
export default SlickCarousel;
我的问题:
非常感谢!
最佳答案
感谢 this great post,我实际上找到了第二个问题的答案由 Wesbos 提供。
=> 长话短说:要在自定义组件中使用 gatsby 图像,您必须创建一个额外的自定义图像组件。像这样:
utils/CustomImage.js
import React from "react";
import { useStaticQuery, graphql } from "gatsby";
import Img from "gatsby-image";
export default function Image({ src, alt }) {
const { allImageSharp } = useStaticQuery(graphql`
query {
allImageSharp {
edges {
node {
fluid(maxWidth: 500) {
...GatsbyImageSharpFluid
originalName
}
}
}
}
}
`);
const image = allImageSharp.edges.find(
edge => edge.node.fluid.originalName === src
);
if (!image) {
return null;
}
return <Img fluid={image.node.fluid} alt={alt} />;
}
用法:
post/slick-carousel.js
import CustImg from "../utils/CustomImage";
import React from "react";
import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
const SlickCarousel = ({ settings, images }) => (
<Slider {...settings}>
{images.map((image, i) => (
<div key={i}>
<CustImg src={`${image.src}`} alt={`${image.alt}`} />
</div>
))}
</Slider>
);
export default SlickCarousel;
=> 长话短说:在幕后,Gatsby 使用 GraphQL 静态查询来检索图像。静态查询是静态的,您不能传递要检索的图像的名称(Gatsby 团队目前正在修复)。因此,目前的解决方法是创建一个额外的组件来获取所有 Assets 并仅返回您调用的 Assets 。
关于gatsby - 如何在 Gatsby 博客 Mdx 文件中导入图像(用于光滑的轮播),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60696636/
光滑,如何将查询映射到继承表模型? IE, 我有表A,B,C A是“父”表,B&C是“子”表 我想知道的是我该如何使用平滑模型,以便A将成为抽象的B&C具体类型,而查询A中的一行将导致B或C对象 类似
如果数据库尚不存在,有没有办法轻松创建数据库? Database.forURL("jdbc:mysql://127.0.0.1/database", driver = "com.mysql.jdbc.
我是 Java slick 的新手,我对“相机”的翻译有一个小问题。我有这个代码: package chapterOne; import org.newdawn.slick.Animation; im
我正在尝试使用 Slick 渲染健康栏。我想要一个红色矩形,前面有一个绿色矩形来显示剩余的生命值。这是我到目前为止所拥有的: Rectangle healthBG = new Rect
有一个225px的方 block 。在里面插入一张大尺寸的图片(850 像素)。她走到外面。 看起来像这样: .content {display: inline-block;} .column {fl
我正在用 Java slick 编写游戏,我想添加消息管理。应该有一个 ArrayList,其中包含所有尚未发送的消息。每 2 秒应显示列表中的下一项。 我的逻辑: 在更新方法中,应显示第一条消息。
case class Account(var email:String, var pass:String, var familyId: Int, var accessId: Int, id: Opti
Content should wrap Content should wrap Content should wrap C
我正在使用 JQuery Slick Slider http://kenwheeler.github.io/slick/效果非常好。 我还运行了一个单独的脚本,用于检查页面 url,如果光滑 slid
我知道如何使用 click, scroll 的事件处理函数和其他默认事件。 目前我正在使用一个名为 slick slider 的 slider 插件。并且它工作正常,我想用定义的函数而不是匿名函数替换
我有 slider ,每个 slider 都包含视频作为背景和播放/暂停按钮。尝试通过单击正确的按钮来播放视频,但出现以下行为:我单击第二张幻灯片中的播放按钮,视频从第一张幻灯片中播放。暂停按钮也是如
我正在尝试在我的页面上实现一个光滑的 slider 。在浏览精美的文档时,他们提到要以响应方式使用 slider ,请遵循代码(我在下面发布)。我无法理解断点的用途。谁能给我解释一下代码。我尝试谷歌搜
我遇到了光滑 slider 的问题,我想创建一个应该在光滑 slider 上打开的灯箱,我想在灯箱中添加一些内容,主要问题是我不知道如何我可以将内容添加到灯箱部分吗? $('.works-slides
我正在尝试使用一个 slider ,它附带一个搜索框。此搜索框搜索 slider 中的用户名称。 目前,当用户开始在输入框中键入内容时,搜索框会自动完成全名。 例如,他们输入“Joh”,建议输入“Jo
我一直在尝试创建类似 this 的东西使用 slick.js,我真的无法理解它。 我已经准备好了当前的代码。如何使中心幻灯片图像的宽度和高度为 100% 并为幻灯片添加填充?好像不行。 我真的很感激任
我使用光滑 slider 创建了 slider 。我遇到的问题是在线断点工作正常的宽度。 但是,当我以正常方式写入 html file 时,相同的代码不起作用。谁能帮我这个。从检查中检查并查看正常代码
我正在尝试在输入字段中删除可拖动选项(以便我可以选择文本并使用箭头在字段内导航)。 var slider = $('.slider').slick({ infinite: false,
当它到达 breakpoint 时,如 990px,我在 slick slider 中遇到了问题。它删除了背景并且没有显示任何类型的错误。 iconic 我正在使用这个 javascript 来提
我想将光滑 slider 的点定位在上一个和下一个按钮之间。Slick 提供设置让您定位点/按钮。但它们会互相显示。 这是我的代码: $('.slider').slick({ arrows:
我在网站上创建了一个光滑的 slider 。我可以看到它进入“光滑模式”,但也没有显示我告诉它的幻灯片数量。它们都在那里,我可以通过更改它们的“左”和“不透明度”CSS 值来显示它们。 我将无法复制这
我是一名优秀的程序员,十分优秀!