Jump to content
  • 0

перенос элемента из одного блока в другой при изменении размера экрана


green-vik
 Share

Question

Всем доброго времени суток!

к примеру мы имеем следующий код:

<div class="1">
  <div class="2">
    тут текст какой либо
  </div>
</div>

<div class="3">
  и тут текст
</div>

скажем что DIV="1" фиксирован и всегда на виду, а вот  DIV="3" виден лишь тогда когда разрешение экрана меньше чем 480рх и также имеет фиксированное положение но внизу.

теперь суть вопроса, возможно ли реализовать и если да то как чтобы  DIV="2" при разрешении экрана свыше 480рх был в блоке  DIV="1" , а при разрешении меньше 480рх в перемещался в блок  DIV="3" .

Есть вариант конечно прописать в обоих блоках html код DIV="2" , а потом манипулируя display:none показывать, но если в данном (DIV="2") кода много то получится захломление страницы дублирующемся и по сути дважды не нужным кодом.

надеюсь подскажите, всем заранее спасибо

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

вижу вариант только с js, при изменении размеров переносить блок.
А вообще зачем такоей ход, если DIV=1 у вас всегда видимый
И возможно есть смысл увидеть как это все должно выглядеть, возможно изменив саму верстку можно будет добиться этого эффекта

Link to comment
Share on other sites

  • 0
7 минут назад, Switch74 сказал:

вижу вариант только с js, при изменении размеров переносить блок.
А вообще зачем такоей ход, если DIV=1 у вас всегда видимый
И возможно есть смысл увидеть как это все должно выглядеть, возможно изменив саму верстку можно будет добиться этого эффекта

кода пока нет, а ход нужен для того что скажем в верхнем блоке DIV="1" у нас например поиск, навигация и логин панель, но скажем для телефона этот формат не удобен и хочу при маленьких размерах логин панель вниз утащить

Link to comment
Share on other sites

  • 0

Чтобы не открывать новую ветку, да и по теме в принципе. Где ошибка: 

var div = document.createElement('div');
  div.className = "navigation";
  div.innerHTML = "Your panel navigation";
  
 
var screenWindows = screen.width;

    if (screenWindows >= 320 && screenWindows <= 480) {
       var f = document.body.getElementsByTagName('footer');
       f.appendChild(div);
    } else if (screenWindows >= 480) {
       var h = document.body.getElementsByTagName('header');
       h.appendChild(div);
    }

вот исходник: https://jsfiddle.net/5pwxwpsf/1/

Link to comment
Share on other sites

  • 0

https://jsfiddle.net/5pwxwpsf/2/
Тут есть нюансы:
screen.width - размер экрана, а не окна браузера, скорее всего оно вам поможет если вы будете тестить на меньшем экране в реальности.
document.body.getElementsByTagName возвращает коллекцию элементов, а не сам элемент как это делает getElementById, т.к. с id подразумевается только 1 элемент, а элементов с одинаковым тегом может быть много

  • Like 1
Link to comment
Share on other sites

  • 0
6 часов назад, Switch74 сказал:

+1, а я бьюсь. Мы же получаем коллекцию элементов (getElementsByTagName).  Кстати ваше решение из Flexbox тоже отличное!  

Edited by nightgremlin
Дополнение
Link to comment
Share on other sites

  • 0
В 22.09.2017 в 16:36, Switch74 сказал:

Тут есть нюансы:
screen.width - размер экрана, а не окна браузера, скорее всего оно вам поможет если вы будете тестить на меньшем экране в реальности.
document.body.getElementsByTagName возвращает коллекцию элементов, а не сам элемент как это делает getElementById, т.к. с id подразумевается только 1 элемент, а элементов с одинаковым тегом может быть много

Это всё понятно, тут была важна задумка, что такое в принципе просто сделать на нативном  JS. Доработать и впустить в дело это уже дело житейское ;) 

Edited by nightgremlin
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy