Estou tentando mover a página para um <div>
elemento.
Eu tentei o próximo código sem sucesso:
document.getElementById("divFirst").style.visibility = 'visible';
document.getElementById("divFirst").style.display = 'block';
javascript
html
C ..
fonte
fonte
visibility
edisplay
são usados para tornar os elementos (in) visíveis. Deseja rolar a div na tela?el.scrollIntoView(true)
Respostas:
Você pode usar uma âncora para "focalizar" a div. Ou seja:
e use o seguinte javascript:
fonte
location.href="#";location.href="#myDiv"
.id="myDiv"
É preferível usarname="myDiv"
e também funciona.scrollIntoView funciona bem:
referência completa nos documentos MDN:
https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoView
fonte
scrollIntoView
sua pergunta e as respostas parecem diferentes. Não sei se estou enganado, mas para aqueles que pesquisam e chegam aqui, minha resposta seria a seguinte:
Minha resposta explicou:
aqui está um javascript simples para isso
chame isso quando precisar rolar a tela para um elemento que tenha id = "yourSpecificElementId"
ie para a pergunta acima, se a intenção é rolar a tela para a div com o ID 'divFirst'
o código seria:
window.scroll(0,findPos(document.getElementById("divFirst")));
e você precisa desta função para o trabalho:
a tela será rolada para o seu elemento específico.
fonte
window
que você gostaria de se deslocar, não é uma área de visualização-ing estouro[curtop]
paracurtop
no final(window.screen.height/2)
de findPosPara Chrome e Firefox
Eu estive analisando um pouco isso e descobri um que parece ser a maneira mais natural de fazer isso. Claro, este é o meu pergaminho favorito agora. :)
Para apoiadores do IE, Edge e Safari
Observe que
window.scroll({ ...options })
não há suporte no IE, Edge e Safari. Nesse caso, é mais provável que seja melhor usarelement.scrollIntoView()
. (Suportado no IE 6). Você pode provavelmente (ler: não testado) passar opções sem nenhum efeito colateral.É claro que eles podem ser agrupados em uma função que se comporta de acordo com o navegador que está sendo usado.
fonte
window.scroll
Tente o seguinte:
por exemplo @:
fonte
element.tabIndex
mas nãoelement.tabindex
; o segundo funciona no Firefox, mas não no Chrome (pelo menos quando tentei há algum tempo). Claro, usado como um atributo HTML tantotabIndex
etabindex
trabalho (e em XHTML,tabindex
deve ser utilizado)Para rolar para um determinado elemento, criei esta solução apenas em javascript abaixo.
Uso simples:
Objeto do mecanismo (você pode mexer no filtro, nos valores de fps):
fonte
Aqui está uma função que pode incluir um deslocamento opcional para esses cabeçalhos fixos. Nenhuma biblioteca externa é necessária.
Você pode pegar a altura de um elemento usando JQuery e rolar para ele.
Atualização março de 2018
Role até esta resposta sem usar o JQuery
fonte
Você pode definir o foco como elemento. Funciona melhor que
scrollIntoView
node.setAttribute('tabindex', '-1')
node.focus()
node.removeAttribute('tabindex')
fonte
A melhor e mais curta resposta que funciona mesmo com efeitos de animação:
Se você tiver uma barra de navegação fixa, basta subtrair a altura do valor superior. Portanto, se a altura da barra fixa for 70 px, a linha 2 será semelhante a:
Explicação: A linha 1 faz com que a posição do elemento role a linha 2 para a posição do elemento;
behavior
A propriedade adiciona um efeito animado suavefonte
O foco pode ser definido apenas em elementos interativos ... Div apenas representa uma seção lógica da página.
Talvez você possa definir as bordas em torno de div ou alterar sua cor para simular um foco. E sim, Visiblity não é foco.
fonte
Eu acho que se você adicionar um tabindex ao seu div, ele será capaz de obter foco:
Porém, não acho que seja válido, o tabindex pode ser aplicado apenas a uma área, botão, entrada, objeto, seleção e área de texto. Mas dá-lhe uma chance.
fonte
tabindex
há um "atributo principal", que é "atributos globais" (atributos comuns a todos os elementos na linguagem HTML). Consulte w3.org/TR/2011/WD-html-markup-20110113/global-attributes.htmlSemelhante à solução de @ caveman
fonte
Você não pode se concentrar em uma div. Você pode focar apenas em um elemento de entrada nessa div. Além disso, você precisa usar element.focus () em vez de display ()
fonte
<div>
foco se estiver usando otabindex
atributo Veja dev.w3.org/html5/spec-author-view/editing.html#attr-tabindexDepois de olhar muito ao redor, foi o que finalmente funcionou para mim:
Encontre / localize div em seu domínio, que possui barra de rolagem. Para mim, ficou assim: "div class =" table_body table_body_div "scroll_top =" 0 "scroll_left =" 0 "style =" width: 1263px; altura: 499px; "
Eu o localizei com este xpath: // div [@ class = 'table_body table_body_div']
Utilizava JavaScript para executar rolagem como esta: driver (JavascriptExecutor)) .executeScript ("argumentos [0] .scrollLeft = argumentos [1];", elemento, 2000);
2000 é o número de pixels que eu queria rolar para a direita. Use scrollTop em vez de scrollLeft se desejar rolar sua div para baixo.
Nota: Tentei usar o scrollIntoView, mas não funcionou corretamente porque minha página da web tinha vários divs. Funcionará se você tiver apenas uma janela principal onde o foco está. Esta é a melhor solução que encontrei se você não quiser usar o jQuery que eu não queria.
fonte
Um método que costumo usar para rolar um contêiner para o seu conteúdo.
se você deseja substituir globalmente, também pode:
fonte
Devido ao comportamento "suave" não funciona no Safari, Safari ios, Explorer. Normalmente, escrevo uma função simples utilizando requestAnimationFrame
fonte
Caso você queira usar o html, você pode apenas usar o seguinte:
e crie um link html para o ID do elemento específico. Sua
getElementById
versão basicamente html.fonte
tente esta função
Passe o div id como parâmetro ele vai funcionar já estou usando ele
fonte
$j
?