Если поле envelopeData.details.detail имеет тип , вложенный , то вы можете выполнить запрос на совпадение для нужного имени на вложенном пути и использовать inner_hits . ], чтобы получить только значение.
Сопоставить поле envelopeData.details.detail как вложенное (если не вложенное):
PUT stackoverflow
{
"mappings": {
"_doc": {
"properties": {
"envelopeData.details.detail": {
"type": "nested"
}
}
}
}
}
, затем вы можете выполнить следующий запрос, чтобы получить значение, используя inner_hits [ 1111]:
GET stackoverflow/_search
{
"_source": "false",
"query": {
"nested": {
"path": "envelopeData.details.detail",
"query": {
"match": {
"envelopeData.details.detail.name.keyword": "UC_CORP"
}
},
"inner_hits": {
"_source": "envelopeData.details.detail.value"
}
}
}
}
который выводит:
{
"_index": "stackoverflow",
"_type": "_doc",
"_id": "W5GUW2gB3GnGVyg-Sf4T",
"_score": 0.6931472,
"_source": {},
"inner_hits": {
"envelopeData.details.detail": {
"hits": {
"total": 1,
"max_score": 0.6931472,
"hits": [
{
"_index": "stackoverflow",
"_type": "_doc",
"_id": "W5GUW2gB3GnGVyg-Sf4T",
"_nested": {
"field": "envelopeData.details.detail",
"offset": 0
},
"_score": 0.6931472,
"_source": {
"value": "76483" -> Outputs value only
}
}
]
}
}
}
}
Реальный прием должен отслеживать то, где полоса прокрутки в своей стихии содержащий Ваши объекты. Вот некоторый код, который я когда-то сделал на скорую руку, чтобы сделать это: http://pastebin.com/f4a329cd9
Вы видите это, поскольку Вы прокручиваете его фокус изменений. Просто необходимо добавить больше кода обработчика к функции, которая обрабатывает каждое изменение фокуса. Это работает, прокручивая и в направлении, и в также путем нажатия прямо на полосу прокрутки, которую простое отслеживание мыши не даст Вам (хотя в этом случае, так как элементы в качестве примера являются всеми одинаковыми размер с тем же текстом, трудно сказать, что это действительно прокрутило). Другая проблема - то, что сделать, когда контейнер достигает нижнего предела. Решение у меня есть прямо сейчас только работы в И следующие. Если Вы хотите иметь его, выглядят хорошими в IE, необходимо будет использовать фиктивный элемент, который смешивается с фоном, как тот, который я прокомментировал в коде.
Я просто столкнулся с этим, поскольку мне нужно то же самое, и это выглядит супер полезным:
По моему опыту, Читатель только когда-либо отмечал что-то как чтение, если я имею moused-по или нажал на него. Предположение, что, поскольку Вы прокручиваете свою мышь, по отделению (я склонен помещать свою мышь в правый край экрана, когда я прокручиваю), который мог бы объяснить появление, что это только отделено, когда определенный % показали.
Я мог быть (и вероятно), неправильно, все же. Я просто знаю, что действие просто просмотра моих объектов в читателе не отделяет их. Я должен удостовериться мыши мыши по ним, поскольку это прокручивает, чтобы сделать это.
dom и JavaScript позволяют Вам вычислить смещение элемента от его родителя. Для вычисления смещения из окна, необходимо использовать рекурсию и подняться путь к главному окну и также сравнить это с размером окна. Это становится более сложным из-за проблем перекрестного браузера и iframes.
Насколько я знаю прототип предлагает простое viewportOffset
метод, который делает большую часть работы для Вас. Можно также проверить источник на getOffsetParent
и scrollTo
. Я не знаю о jQuery, но я ожидаю, что это предложит похожие методы.
Мое предположение - то, что сценарий в Google Reader просто работает на тайм-ауте, вероятно, несколько раз секунда, или возможно в ответ на событие прокрутки. В обоих случаях я уверен, что это адаптивно (изменения тайм-аута на основе как быстро пользовательские прокрутки, и т.д.), и что достаточно умно не быть пожирателем ресурсов (т.е. только проверьте все отделения в документ),