Как добавить Slick-активный класс в точках Slider в React Slick

Так как mkl предположительно предлагается, PDFClown относится к библиотекам Java, которые обеспечивают явную поддержку для встраивания страниц (так называемые Form XObjects (см. PDF Reference 1.7, § 4.9) ).

Чтобы дать вам понять, как работает PDFClown, следующий код представляет собой эквивалент решения mbox в формате PDFBox (ПРИМЕЧАНИЕ: как было указано позже в mkl, его образец кода никоим образом не оптимизирован, поэтому это сравнение может не соответствовать фактическому статусу PDFBox - комментарии могут быть прояснены):

Document source = new File(SOURCE).getDocument();
Pages sourcePages = source.getPages();

Document target = new File().getDocument();
Page targetPage = new Page(target);
target.getPages().add(targetPage);

XObject xobject = sourcePages.get(0).toXObject(target);

PrimitiveComposer composer = new PrimitiveComposer(targetPage);
Dimension2D targetSize = targetPage.getSize();
Dimension2D sourceSize = xobject.getSize();
composer.showXObject(xobject, new Point2D.Double(targetSize.getWidth() * .5, targetSize.getHeight() * .35), new Dimension(sourceSize.getWidth() * .6, sourceSize.getHeight() * .6), XAlignmentEnum.Center, YAlignmentEnum.Middle, 45);
composer.showXObject(xobject, new Point2D.Double(targetSize.getWidth() * .35, targetSize.getHeight()), new Dimension(sourceSize.getWidth() * .4, sourceSize.getHeight() * .4), XAlignmentEnum.Left, YAlignmentEnum.Top, 90);
composer.flush();

target.getFile().save(TARGET, SerializationModeEnum.Standard);
source.getFile().close();

Сравнивая этот код с эквивалентом PDFBox, вы можете заметить некоторые существенные различия, которые показывают стиль стиля PDFClown. если какой-нибудь эксперт по PDFBox может проверить мои утверждения):

  • Преобразование страницы в формуXObject: PDFClown поддерживает выделенный метод (Page.toXObject ()), поэтому нет необходимости в дополнительном тяжелом подъеме, таком как вспомогательный метод importAsXObject ();
  • Управление ресурсами: PDFClown автоматически (и прозрачно) выделяет ресурсы страниц , поэтому нет необходимости явные вызовы, такие как page.getResources (). addXObject (xobject, "X");
  • Рисунок XObject: PDFClown поддерживает оба hi gh-уровень (явный масштаб, привязки для перевода и вращения) и методы низкоуровневого (аффинного преобразования) , чтобы разместить ваш FormXObject на странице, поэтому нет необходимости обязательно иметь дело с аффинными преобразованиями.

Все дело в том, что PDFClown имеет богатую архитектуру, состоящую из нескольких слоев абстракции : в соответствии с вашими требованиями вы можете выбрать наиболее подходящий стиль кодирования (либо вникать в низкоуровневые PDF- либо использовать удобную и элегантную модель высокого уровня). PDFClown позволяет вам настраивать каждый байт и решать сложные задачи с помощью смехотворно простого вызова метода по вашему желанию.

РАСКРЫТИЕ: Я являюсь ведущим разработчиком PDFClown.

1
задан sajithneyo 4 March 2019 в 14:25
поделиться

1 ответ

Это происходит потому, что я использую CSS-модули для загрузки своего CSS-файла. В следующем примере кода вы можете ясно видеть, что происходит.

https://codesandbox.io/s/1z2lnox5rq?fontsize=14

Поэтому в качестве решения я добавил добавление методов ниже к объекту настроек.

const settings = {
  dots: true,
  infinite: true,
  speed: 1000,
  slidesToShow: 1,
  slidesToScroll: 1,
  autoplay: true,
  autoplaySpeed: 3000,
  className: slickMain,
  dotsClass: button__bar,
  arrows: false,
  beforeChange: (prev, next) => {
    this.setState({ currentSlide: next });
  },
  // afterChange: (index) => this.setState({ currentSlide: index }),
  appendDots: dots => {
    return (
      <div>
        <ul>
          {dots.map((item, index) => {
            return (
              <li key={index}>{item.props.children}</li>
            );
          })}
        </ul>
      </div>
    )
  },
  customPaging: index => {
    return (
      <button style={index === this.state.currentSlide ? testSettings : null}>
        {index + 1}
      </button>
    )
  }
};

Чтобы решить мою проблему, я использовал beforeChange, чтобы получить индекс следующего слайда и сохранить его в состоянии. Затем, используя appendDots a div с ul, li вводится в секцию точечной панели, которая. Внутри li a button передается в качестве детской опоры по методу customPaging. Когда текущий слайд равен индексу customPaging, который находится в состоянии, тогда класс вводится с цветом фона.

const testSettings = {
    backgroundColor: 'rgba(255, 255, 255, 0.8)',
    outline: '0'
}
0
ответ дан sajithneyo 4 March 2019 в 14:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: