Я пытаюсь переместить страницу в <div>
элемент.
Я пробовал следующий код безрезультатно:
document.getElementById("divFirst").style.visibility = 'visible';
document.getElementById("divFirst").style.display = 'block';
javascript
html
C ..
источник
источник
visibility
иdisplay
используются для того, чтобы сделать элементы (не) видимыми. Хотите прокрутить div на экране?el.scrollIntoView(true)
Ответы:
Вы можете использовать якорь, чтобы "сфокусировать" div. То есть:
а затем используйте следующий JavaScript:
источник
location.href="#";location.href="#myDiv"
. Использованиеid="myDiv"
предпочтительнееname="myDiv"
и работает тоже.scrollIntoView работает хорошо:
Полная ссылка в документах MDN:
https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoView
источник
scrollIntoView
Ваш вопрос и ответы выглядят иначе. Я не знаю, ошибаюсь ли я, но для тех, кто гуглит и достигает здесь, мой ответ будет следующим:
Мой ответ объяснил:
вот простой JavaScript для этого
вызывайте это, когда вам нужно прокрутить экран до элемента, который имеет id = "yourSpecificElementId"
то есть. для вышеупомянутого вопроса, если намерение состоит в том, чтобы прокрутить экран до div с id 'divFirst'
код будет:
window.scroll(0,findPos(document.getElementById("divFirst")));
и вам нужна эта функция для работы:
экран будет прокручен до вашего конкретного элемента.
источник
window
вы хотите прокрутить, а не переполненную область просмотра[curtop]
вcurtop
конце(window.screen.height/2)
вычтите из findPosДля Chrome и Firefox
Я немного разбирался в этом, и я понял, какой-то самый естественный способ сделать это. Конечно, теперь это мой личный любимый свиток. :)
Для сторонников IE, Edge и Safari
Обратите внимание, что
window.scroll({ ...options })
не поддерживается в IE, Edge и Safari. В этом случае, скорее всего, лучше всего использоватьelement.scrollIntoView()
. (Поддерживается в IE 6). Скорее всего, вы можете (читай: не проверено) передавать опции без каких-либо побочных эффектов.Они, конечно, могут быть заключены в функцию, которая ведет себя в соответствии с тем, какой браузер используется.
источник
window.scroll
Попробуй это:
например, @:
источник
element.tabIndex
но нетelement.tabindex
; второй работает на Firefox, но не на Chrome (по крайней мере, когда я попробовал это некоторое время назад). Конечно, используется как атрибут HTMLtabIndex
и дляtabindex
работы (и для XHTML,tabindex
должен использоваться)Чтобы прокрутить до заданного элемента, просто сделайте это решение только для JavaScript ниже.
Простое использование:
Объект движка (вы можете поиграть с фильтром, значениями в секунду):
источник
Вот функция, которая может включать необязательное смещение для этих фиксированных заголовков. Внешние библиотеки не нужны.
Вы можете получить высоту элемента, используя JQuery, и перейти к нему.
Обновление март 2018
Прокрутите до этого ответа, не используя JQuery
источник
Вы можете установить фокус на элемент. Работает лучше чем
scrollIntoView
node.setAttribute('tabindex', '-1')
node.focus()
node.removeAttribute('tabindex')
источник
Лучший, самый короткий ответ, который работает даже с анимационными эффектами:
Если у вас есть фиксированная навигационная панель, просто вычтите ее высоту из верхнего значения, поэтому, если ваша фиксированная высота панели составляет 70 пикселей, строка 2 будет выглядеть так:
Пояснение: Строка 1 получает позицию элемента. Строка 2 прокручивает до позиции элемента;
behavior
свойство добавляет плавный анимированный эффектисточник
Фокус может быть установлен только на интерактивные элементы ... Div только представляют логический раздел страницы.
Возможно, вы можете установить границы вокруг div или изменить его цвет, чтобы имитировать фокус. И да, Видимость не в фокусе.
источник
Я думаю, что если вы добавите tabindex в ваш div, он сможет получить фокус:
Я не думаю, что это действительно так, хотя tabindex можно применять только к области, кнопке, вводу, объекту, выделению и текстовой области. Но попробуйте.
источник
tabindex
есть «основной атрибут», который представляет собой «глобальные атрибуты» (атрибуты, общие для всех элементов языка HTML). См. W3.org/TR/2011/WD-html-markup-20110113/global-attributes.htmlПохоже на решение @ caveman
источник
Вы не можете сосредоточиться на div. Вы можете сосредоточиться только на элементе ввода в этом div. Также вам нужно использовать element.focus () вместо display ()
источник
<div>
фокусировку, если используетеtabindex
атрибут. См. Dev.w3.org/html5/spec-author-view/editing.html#attr-tabindexПосмотрев вокруг, вот что наконец-то сработало для меня:
Найти / найти div в вашем доме, который имеет полосу прокрутки. Для меня это выглядело так: "div class =" table_body table_body_div "scroll_top =" 0 "scroll_left =" 0 "style =" width: 1263px; высота: 499 пикселей; "
Я нашел его с помощью этого xpath: // div [@ class = 'table_body table_body_div']
Использовал JavaScript для выполнения прокрутки следующим образом: (JavascriptExecutor) driver) .executeScript ("arguments [0] .scrollLeft = arguments [1];", element, 2000);
2000 - это количество пикселей, которое я хотел прокрутить вправо. Используйте scrollTop вместо scrollLeft, если вы хотите прокрутить ваш div вниз.
Примечание. Я попытался использовать scrollIntoView, но он не работал должным образом, поскольку на моей веб-странице было несколько элементов div. Это будет работать, если у вас есть только одно главное окно, где находится фокус. Это лучшее решение, с которым я столкнулся, если вы не хотите использовать jQuery, чего я не хотел.
источник
Метод, который я часто использую для прокрутки контейнера до его содержимого.
если вы хотите переопределить глобально, вы также можете сделать:
источник
Из-за поведения «гладкий» не работает в Safari, Safari ios, Explorer. Я обычно пишу простую функцию, используя requestAnimationFrame
источник
Если вы хотите использовать HTML, вы можете просто использовать это:
и сделать его HTML-ссылкой на конкретный идентификатор элемента. Его в основном
getElementById
HTML-версия.источник
попробуй эту функцию
Передайте div id в качестве параметра, он будет работать, я уже его использую
источник
$j
?