Слайдер для сравнения изображений

:information_source: Краткое описание Добавить кнопку в редактор для создания перетаскиваемого интерактивного слайдера сравнения изображений.
:hammer_and_wrench: Репозиторий GitHub - josephclaytonhansen/discourse-image-comparison-slider · GitHub
:question: Руководство по установке Как установить тему или компонент темы
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

Установить этот компонент темы

Этот компонент добавляет кнопку в редактор для создания перетаскиваемых слайдеров сравнения изображений. Настройки слайдера, такие как направление или иконка кнопки, могут быть настроены в параметрах администратора.

Это моя первая попытка разработки для Discourse, поэтому прошу прощения, если я допустил какие-либо ошибки.

27 лайков

Что такое WIP? (Теперь уже 20 символов?)

2 лайка
4 лайка

WIP — это работа в процессе.

3 лайка

Это здорово! Спасибо за этот вклад :+1:

Какие именно обновления вы имеете в виду?

4 лайка

В основном мне нужно привести код в порядок и сделать его более соответствующим стандартам Discourse. На данный момент он немного небрежен, так как я активно учился создавать компонент темы здесь :slight_smile:

Также я планирую добавить возможность изменения направления слайдера прямо из редактора сообщений — сейчас направление определяется настройками администратора, но я хотел бы сделать этот параметр управляемым пользователем. (ИСПРАВЛЕНИЕ: это уже добавлено!)

Кроме того, я хотел бы получить больше контроля над стилями ползунка/разделителя, но, к сожалению, это не совсем возможно. JavaScript, обрабатывающий слайдер, создаёт его до применения любых CSS-изменений и не перестраивает слайдер при изменении CSS.

9 лайков

Крутые вещи! :heart:
Спасибо за вклад :raised_hands:

4 лайка

Добавлена возможность выбора пользователем вертикального или горизонтального ползунка с помощью атрибута data-direction-horizontal или data-direction-vertical. Если пользователь не укажет направление, будет использована настройка по умолчанию, выбранная в административных настройках.
Запись экрана 2023-05-10 в 8:28:30|видео
Это обновление доступно сейчас на GitHub или из панели администратора Discourse, если вы установили компонент темы.

5 лайков

Очень круто, спасибо, Джозеф! Всё работает хорошо, но на моём сайте я вижу эту ошибку:

Она исчезает, если обновить страницу, и в консоли я вижу только следующее:

2 лайка

Это круто. Отличная работа. :+1:

2 лайка

Трудно сказать, что именно вызывает эту проблему — у меня на локальной машине воспроизвести не получается :confused: Из этих ошибок только первая может быть связана с этим компонентом, так как я не использую tooltipContainer и не сталкиваюсь с циклом ResizeObserver, но, опять же, я не уверен. Вы обновились до последней версии? Вчера я внес несколько изменений, которые могли бы исправить эту проблему.

1 лайк

Спасибо, Джозеф, у меня установлена последняя версия. Странно, что я больше не могу вызвать это сообщение, и я не вижу никаких проблем, так что, возможно, это был случайный сбой?

Ещё один момент: иконка не хочет меняться. Я, разумеется, добавил её в подмножество SVG-икон. Также пробовал другие иконки, которые уже работают на моём сайте, но она так и не меняется с молнии. Я пытаюсь изменить её на arrows-alt-h.

2 лайка

Это моя ошибка, я только что внес исправление, которое решит эту проблему. Спасибо, что заметили!

3 лайка

Очень круто, у меня есть несколько проблем:

Локализация

В нашем форуме мы переключились на локаль en_GB, поэтому при наведении курсора я вижу:


вместо альтернативного/дополнительного текста из настроек компонента:

Невозможно выделить текст

Плагин, кажется, перехватывает все события нажатия мыши и мешает мне выделять любой текст на странице для копирования, вставки, цитирования и т. д. Это не проблема на meta.discourse… Готов предоставить больше деталей о моей конфигурации/теме (в основном простая тема от Сэма с несколькими дополнительными компонентами, такими как галерея и GIF-анимации) Проблема исчезла… Я люблю технологии.

3.1.0.beta4

(f0bdb2ee9a)

Не работает в Firefox вообще (и у некоторых пользователей мобильного Chrome)

Я создал пост с инструкциями по использованию функции, и некоторые люди сказали, что ничего не видят. (не очень полезная обратная связь, так как у меня нет реальных отчётов об ошибках от пользователей).

2 лайка

Хм… это странно, я тестировал это в Firefox без проблем. Попробую воспроизвести. Люблю случайные баги :melting_face: В используемой мной библиотеке на GitHub нет никаких проблем для Firefox, ни открытых, ни закрытых, что ещё больше усложняет исправление ошибок.

Локали — я не уверен, какой процесс предусмотрен для предоставления файлов локализации. Я могу добавить en.GB, так как владею этим языком, но это предел моих знаний. Знают ли другие авторы компонентов тем, как должны работать переводы файлов локализации? Мне просто прогнать текст через Google Translate? :sweat_smile:

1 лайк

Единственное различие, которое я вижу между вашим и рабочим компонентом (giphy), — это отступы…

Возможно, дело в том, что весь контент YAML находится на одном уровне отступа, что-то там с парсером.

В общем… я самоучка и понятия не имею, что делаю.

3 лайка

Понимаю, как вы себя чувствуете :slight_smile: Я разберусь с этим. Я использую парсер YML из VS Studio, но он может не полностью соответствовать стандартам. Попробую сделать аккуратное ручное форматирование отступов в «Блокноте».

1 лайк

@Frully Я исправил проблему с Firefox — теперь это должно работать во всех браузерах (я протестировал Chrome, Firefox, Safari и мобильные версии без проблем). Если вы обновите это, оно будет работать для ваших пользователей Firefox.

2 лайка

Здравствуйте

Этот компонент темы очень крутой, спасибо, я только что установил его :slight_smile:

Проблема с текстом кнопки и с текстом-заполнителем


У меня также установлен компонент темы

После установки у меня следующее:

  • текст кнопки «Image comparison slider» также отображается на кнопке «Masonry Image Gallery»
  • текст-заполнитель «Image comparison slider» вместо текста-заполнителя «Masonry Image Gallery»

Странно, не так ли?

Стефан

1 лайк

Я не думал об этой проблеме. Спасибо, что указали на неё, @Stephane_Roy!

Суть проблемы в том, что оба компонента темы используют одни и те же переменные перевода. Другие TC могут сталкиваться с той же проблемой… Исправление заключается в обновлении/изменении названий button_text и add_images_prompt в указанных ниже местах. Я также обновлю галерею изображений Masonry.

translations.button_text = settings.button_text;
translations.composer.add_images_prompt =
settings.add_images_prompt;

api.onToolbarCreate(function(toolbar){
toolbar.addButton({
trimLeading: true,
id: “image-comparison-slider”,
group: “insertions”,
icon: settings.button_icon,
title: “button_text”,
perform: e => e.applySurround(
[“<div data-image-comparison-slider data-direction-”,settings.default_direction,“>\n\n”].join(‘’),
“\n\n”,
add_images_prompt”,
{ multiline: false }
)
});

1 лайк