Nano Hash - криптовалюты, майнинг, программирование

Добавление нескольких стилей к одному и тому же тексту с помощью jQuery

Каждое слово на моей веб-странице будет иметь сноски, и пользователь будет щелкать слово/фразу, чтобы просмотреть сноски. Однако некоторые из сносок перекрываются, т. е. сноска 1 может применяться к текущему слову, а сноска 2 применяется ко всей фразе, начинающейся с текущего слова.

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

введите здесь описание изображения

Мой фон — HTML/CSS/JS, и мне удобно использовать CSS, чтобы все это стекирование выглядело красиво. Это сам HTML, который я не могу понять. У кого-нибудь из вас есть идеи, как расположить эти SPAN один поверх другого?

В идеале необработанный ввод не должен иметь миллион спанов для тегов... Я полагаю, что JS должен вставлять интервалы в зависимости от положения слова в абзаце. Таким образом, в приведенном выше примере, когда вы наводите курсор на слово «оценка», JS вставит диапазон из одного слова, начинающийся со слова 2 («счет»), диапазон из четырех слов, начинающийся со слова 1 («Четыре»), и диапазон из шести слов, начинающийся со слова 1 («Четыре»). Если это лучший метод, как я могу указать jQuery, что при наведении курсора нужно пересчитывать слова вперед и назад и добавлять теги?


  • Не могли бы вы опубликовать свой HTML-код 21.05.2014
  • Это еще не в HTML. Я пытаюсь спланировать лучшее решение. 21.05.2014
  • Вы думаете о методе HTML/CSS для идентификации слов/фраз, и это разумно. Но другой подход состоит в том, чтобы сделать каждое слово частью массива, а затем назначить значения поиска для каждого члена массива. Одно искомое значение приведет к информации о слове, тогда как другое искомое значение для нескольких слов приведет к идентификации фразы. 21.05.2014

Ответы:


1

Проблема, которую вы описываете, интересна, но на самом деле довольно сложна для решения, поэтому я просто отвечу на ваши вопросы один за другим.

Это сам HTML, который я не могу понять. У кого-нибудь из вас есть идеи, как расположить эти SPAN один поверх другого?

span, которые являются дочерними элементами других спанов, будут автоматически индексироваться по z поверх своих родителей, поэтому html может выглядеть так:

<div class="container">
  <span>
    <span>
      Four <span>score</span> and seven
    </span> years ago
  </span>
  our fathers...
</div>

вы можете просто назначить дочерние промежутки разных стилей в вашем css (как вы знаете, добавляя для полноты):

.container span {..}
.container span > span {...}

Как указать jQuery, что при наведении курсора нужно пересчитывать слова вперед и назад и добавлять теги?

Эта часть очень сложная. Когда вы наводите курсор мыши на что-то в javascript, вы можете получить текст содержимого элемента и всевозможную информацию о позиции мыши.

Не имеет смысла пытаться вычислить ограничивающую рамку слова, поскольку каждый браузер и каждая ОС будут отображать текст по-разному, не говоря уже о том, что немоноширинные шрифты будут иметь разную ширину для каждого символа.

Теоретически было бы возможно использовать комбинацию карт и, возможно, вызвать щелчок (через API выбора), чтобы узнать, какое слово было под вашим курсором, но, вероятно, это не очень хорошо сработает с вашим пользовательским интерфейсом. Удачи!

21.05.2014

2

Я работал над этой концепцией со вчерашнего дня и смог придумать предварительную рабочую скрипку - FIDDLE. .

Общая идея заключается в следующем:

  1. Поместите все слова и связанные с ними дескрипторы в массив.

  2. Отображать слова динамически.

  3. Свяжите скрытые данные с каждым из слов, поскольку они отображаются динамически.

  4. Когда вы наводите курсор на слово, связанные данные (дескрипторы на разных уровнях) отображаются там, где вы хотите.

JS

var mydata = [
              ['four', 'a number', 'four score = 80', 'total of 87 years'],
              ['score', 'a word', 'four score = 80', 'total of 87 years'],
              ['and', 'a word', '', 'total of 87 years'],
              ['seven', 'a number', '', 'total of 87 years'],
              ['years', 'a word', '', 'total of 87 years'],
              ['ago', 'a word', 'ago = in the past', '']
              ];

for(var v=0; v<6; v++)
   {
    $('.holder').append("<div class='num" + v + "'>" + mydata[v][0] + '-' + " </div>");
    $(".num" + v).data( 'dataval1', mydata[v][1] );
    $(".num" + v).data( 'dataval2', mydata[v][2] );
    $(".num" + v).data( 'dataval3', mydata[v][3] );
    }

$('.holder div').on('mouseenter', function(){
  $('.putmehere').html(
                        $( this ).data('dataval1') + "<br />" +
                        $( this ).data('dataval2') + "<br />" +
                        $( this ).data('dataval3') + "<br />"
  );
});
$('.holder div').on('mouseleave', function(){
  $('.putmehere').html('');
});
23.05.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..