Возможно, лучше всего понять, что вызывает ваше мерцание, но поскольку вы не дали нам никакой информации, мы не можем сказать об этом.
Это довольно легко заменить элемент с простым JavaScript:
function replaceElem(origElem, newElem) {
var parent = origElem.parentNode;
parent.insertBefore(newElem, origElem);
parent.removeChild(origElem);
}
Если вы хотите, чтобы исчезнуть новый элемент, вы можете сделать это с переходом CSS или библиотекой, которая поддерживает анимацию.
Если вы хотите, чтобы новый элемент затухал в верхней части старого элемента, вам необходимо сыграть в некоторые игры с перекрывающимися объектами и позиционированием и удалить только старый элемент после полного исчезновения нового элемента. выполнимо, но не так просто, как просто заменить один элемент на другой.
Один простой способ просто иметь оба набора HTML в исходной странице:
<div id="page1" class="page">
<div>Other HTML here</div>
</div>
<div id="page2" class="page" style="display: none;">
<div>Other HTML here</div>
</div>
А, то вы можете скрыть показать только конкретную страницу, как это:
function showPage(id) {
// hide all pages
var pages = document.querySelectAll(".page");
for (var i = 0; i < pages.length; i++) {
pages.style.display = "none";
}
// show one particular page
document.getElementById(id).style.display = "block";
}
// show page 2
showPage("page2");
это здорово, спасибо. Будет ли это работать как целая страница? Так, например, у меня есть кнопка «goback» и «goforth», и каждый соответствующий щелчок приведет к новой странице со всеми их содержащими элементами? – user3464627
@ user3464627 - он будет работать с любыми двумя объектами и всеми их объектами, находящимися под декомпозицией. Итак, если у вас есть два объекта контейнера, которые содержат множество других элементов DOM, вы также можете их обменивать с помощью этой функции. Просто перейдите в два элемента контейнера, и он поменяет их. Эта функция предполагает, что HTML уже загружен в элементы DOM, и у вас есть ручки к элементам DOM. – jfriend00
, но для того, чтобы заменить элемент, я должен сначала определить его в моем html-файле вместе с css. Как я могу «скрыть» другие элементы? например.
Показывает на нагрузке Shows по щелчку Показывает по щелчку – user3464627