Два кадра одна полоса прокрутки - PullRequest
2 голосов
/ 21 ноября 2010

Я пытаюсь создать два кадра и заставить их прокручиваться вместе, например, в случае страницы с изменяющейся строкой меню вверху - Я использую карусель - или нижний колонтитул внизу, который должен отображаться как часть страницы.

Я хочу, чтобы страница выглядела как одна страница, которую можно прокручивать но страница на самом деле состоит из двух кадров. Используя это ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<!-- Info from: http://www.webxpertz.net/forums/showthread.php?t=257 -->
<!-- Using this... -->

<meta NAME="Description" content="Outer frame(OneBaredFrame) used to wrap the header and body frames" />
<meta HTTP-EQUIV="Cache-Control" content="no-cache" />
<meta HTTP-EQUIV="pragma" content="no-cache" />

<title></title>

</head>

<frameset rows="1,*" border="0" frameborder="no">

<frame src="javascript:<HTML></HTML>" name="dummy" id="dummy" 
frameborder="no" marginheight="0" marginwidth="0" noresize="noresize" scrolling="no"></frame>

<frame src="index_inner.html" name="OneBaredFrame"
 id="OneBaredFrame" frameborder="no" marginheight="0" marginwidth="0"  noresize="noresize" scrolling="yes"></frame>

<!-- the bottom frame above if scrolling="yes" doesn't show a scrollbar for me? -->

<!-- the top frame above if scrolling="yes" does show a scrollbar for me if rows="100,*" say? -->

</frameset>

</html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">


<head>

<meta NAME="Description" content="Frames for within a scrollable frame">

<meta HTTP-EQUIV="Cache-Control" content="no-cache">

<meta HTTP-EQUIV="pragma" content="no-cache">

<title></title>

</head>

 <!-- My header and body frames need to scroll together, 
 so I am using another frameset (the one above) to enclose these frames -->

<frameset rows="215,*" border="0" frameborder="no"> 
<frame src="Header.html" id="header" name="header" frameborder="no"
 marginheight="0" marginwidth="0" noresize="noresize" scrolling="no"></frame>

<frame src="index_body.html" id ="body" name="body" frameborder="no" 
marginheight="0" marginwidth="0" noresize="noresize" scrolling="no"></frame>

<!-- when the above are set to scrolling="yes" scrollbars appear for me for each -->

</frameset>

</html> 

Ответы [ 2 ]

1 голос
/ 21 ноября 2010

При использовании фреймов у каждого будут свои полосы прокрутки.

Нельзя использовать одну полосу прокрутки для двух кадров, потому что - это два кадра.


Обновление:

Вы можете обойти , сделав так, чтобы оба кадра не прокручивались, и обернуть их в третий кадр прокрутки (единственная причина существования которого - предоставить одну полосу прокрутки). Родительский кадр будет обрабатывать прокрутку обоих внутренних кадров вместе.

Вам необходимо добавить новую страницу с набором фреймов, как показано ниже, убедившись, что вторая указывает на ваш набор фреймов (и установить SCROLLING="NO" на обоих наборах фреймов:

<FRAMESET ROWS="0%,100%"
  BORDER="0"
  FRAMEBORDER="NO">
  <FRAME SRC=""
    NAME="dummy"
    FRAMEBORDER="NO"
    MARGINHEIGHT="0"
    MARGINWIDTH="0"
    NORESIZE
    SCROLLING="NO">
  </FRAME>
  <FRAME SRC="*url to your frameset*"
    NAME="myframes"
    FRAMEBORDER="NO"
    MARGINHEIGHT="0"
    MARGINWIDTH="0"
    NORESIZE
    SCROLLING="YES">
  </FRAME>
</FRAMESET>
0 голосов
/ 29 марта 2013

Я получил то, что вы ищете, используя IFRAME.

Это даже более гибко, чем FRAME, так как не требует разделения окна от края до края, а границу каждого кадра не нужно выравнивать с другой.

Я использовал это для веб-страницы, которую я только что развернул, и она работает как шарм.

Есть один недостаток: высота основного кадра должна быть зафиксирована заранее, и вам нужно переоценить ее, чтобы избежать внутренней полосы прокрутки.

<BODY>
<CENTER>
  <DIV style="display:table-cell; width:800; ">
      <iframe WIDTH=800 HEIGHT=220 src="menu.html" name="topframe" frameBorder=0 SCROLLING=NO></iframe>
      <iframe WIDTH=800 HEIGHT=380 src="home.html" name="contentframe" frameBorder=0 SCROLLING=AUTO></iframe>
      <iframe WIDTH=800 HEIGHT=220 src="menu.html" name="bottomframe" frameBorder=0 SCROLLING=NO></iframe>
  </DIV>
<CENTER>
</BODY>

Ссылки в menu.html с TARGET = "contentframe" делают то, что вы хотите.

...