Estoy tratando de mover la página a un <div>
elemento.
He intentado el siguiente código en vano:
document.getElementById("divFirst").style.visibility = 'visible';
document.getElementById("divFirst").style.display = 'block';
javascript
html
C..
fuente
fuente
visibility
ydisplay
se usan para hacer que los elementos (in) sean visibles. ¿Desea desplazar el div en la pantalla?el.scrollIntoView(true)
Respuestas:
Puedes usar un ancla para "enfocar" el div. Es decir:
y luego use el siguiente javascript:
fuente
location.href="#";location.href="#myDiv"
.id="myDiv"
Se prefiere usarname="myDiv"
y también funciona.scrollIntoView funciona bien:
referencia completa en los documentos de MDN:
https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollIntoView
fuente
scrollIntoView
Su pregunta y las respuestas se ven diferentes. No sé si me equivoco, pero para aquellos que buscan en Google y llegan aquí, mi respuesta sería la siguiente:
Mi respuesta explicó:
aquí hay un javascript simple para eso
llame a esto cuando necesite desplazar la pantalla a un elemento que tenga id = "yourSpecificElementId"
es decir. para la pregunta anterior, si la intención es desplazar la pantalla al div con el id 'divFirst'
el código sería:
window.scroll(0,findPos(document.getElementById("divFirst")));
y necesitas esta función para trabajar:
la pantalla se desplazará a su elemento específico.
fuente
window
que le gustaría desplazarse, no un área de visualización desbordante[curtop]
alcurtop
final(window.screen.height/2)
de findPosPara Chrome y Firefox
He estado investigando un poco esto y descubrí esto, que de alguna manera se siente como la forma más natural de hacerlo. Por supuesto, este es mi pergamino favorito personal ahora. :)
Para los partidarios de IE, Edge y Safari
Tenga en cuenta que
window.scroll({ ...options })
no es compatible con IE, Edge y Safari. En ese caso, lo más probable es que sea mejor usarloelement.scrollIntoView()
. (Compatible con IE 6). Lo más probable es que puedas (leer: no probado) pasar opciones sin ningún efecto secundario.Por supuesto, estos pueden incluirse en una función que se comporta según el navegador que se esté utilizando.
fuente
window.scroll
Prueba esto:
p.ej @:
fuente
element.tabIndex
pero noelement.tabindex
; el segundo funciona en Firefox pero no en Chrome (al menos cuando lo probé hace algún tiempo). Por supuesto, se usa como un atributo HTML tantotabIndex
para eltabindex
trabajo (como para XHTML,tabindex
debe usarse)Para desplazarse a un elemento dado, acabo de hacer esta solución única de JavaScript a continuación.
Uso simple:
Objeto del motor (puede jugar con el filtro, valores fps):
fuente
Aquí hay una función que puede incluir un desplazamiento opcional para esos encabezados fijos. No se necesitan bibliotecas externas.
Puede tomar la altura de un elemento usando JQuery y desplazarse hasta él.
Actualización marzo 2018
Desplácese a esta respuesta sin usar JQuery
fuente
Puede establecer el foco en elemento. Funciona mejor que
scrollIntoView
node.setAttribute('tabindex', '-1')
node.focus()
node.removeAttribute('tabindex')
fuente
La mejor respuesta más corta que funciona incluso con efectos de animación:
Si tiene una barra de navegación fija, simplemente reste su altura del valor superior, de modo que si la altura de su barra fija es 70px, la línea 2 se verá así:
Explicación: La línea 1 obtiene la posición del elemento. La línea 2 se desplaza a la posición del elemento;
behavior
la propiedad agrega un efecto animado suavefuente
El enfoque se puede establecer solo en elementos interactivos ... Div solo representa una sección lógica de la página.
Quizás pueda establecer los bordes alrededor de div o cambiar su color para simular un foco. Y sí, Visiblity no es foco.
fuente
Creo que si agrega un índice de tabulación a su div, podrá enfocarse:
Sin embargo, no creo que sea válido, tabindex se puede aplicar solo a un área, botón, entrada, objeto, selección y área de texto. Pero inténtalo.
fuente
tabindex
es un "atributo central", que son "atributos globales" (atributos que son comunes a todos los elementos en el lenguaje HTML). Ver w3.org/TR/2011/WD-html-markup-20110113/global-attributes.htmlSimilar a la solución de @ caveman
fuente
No puedes concentrarte en un div. Solo puede centrarse en un elemento de entrada en ese div. Además, debe usar element.focus () en lugar de display ()
fuente
<div>
enfocable si usa eltabindex
atributo. Ver dev.w3.org/html5/spec-author-view/editing.html#attr-tabindexDespués de mirar mucho, esto es lo que finalmente funcionó para mí:
Encuentra / localiza div en tu dom que tiene barra de desplazamiento. Para mí, se veía así: "div class =" table_body table_body_div "scroll_top =" 0 "scroll_left =" 0 "style =" width: 1263px; altura: 499 px; "
Lo ubiqué con este xpath: // div [@ class = 'table_body table_body_div']
Se utilizó JavaScript para ejecutar el desplazamiento de esta manera: (controlador JavascriptExecutor) .executeScript ("argumentos [0] .scrollLeft = argumentos [1];", elemento, 2000);
2000 es el no de píxeles que quería desplazar hacia la derecha. Use scrollTop en lugar de scrollLeft si desea desplazar su div hacia abajo.
Nota: Intenté usar scrollIntoView pero no funcionó correctamente porque mi página web tenía múltiples divs. Funcionará si solo tiene una ventana principal donde se encuentra el foco. Esta es la mejor solución que he encontrado si no quieres usar jQuery que no quería.
fuente
Un método que uso a menudo para desplazar un contenedor a su contenido.
si desea anular globalmente, también puede hacer:
fuente
Debido al comportamiento "suave" no funciona en Safari, Safari ios, Explorer. Por lo general, escribo una función simple utilizando requestAnimationFrame
fuente
En caso de que quiera usar html, puede usar esto:
y conviértalo en un enlace html al identificador de elemento específico. Es básicamente una
getElementById
versión html.fuente
prueba esta función
Pase el id de div como parámetro funcionará, ya lo estoy usando
fuente
$j
de?