HTML: одна полоса прокрутки для двух кадров - PullRequest
1 голос
/ 22 октября 2011

У меня проблемы с наличием одной полосы прокрутки для двух кадров, как показано на рисунке: Два кадра на одной полосе прокрутки

Ниже мой код:

<FRAMESET ROWS="151,*">
        <%if (something) then %>
            <FRAME SRC="UserQueue_Header.asp" NAME="UserQueue_Header" SCROLLING="no" NORESIZE />
            <FRAME SRC="UserQueue_Detail.asp" NAME="UserQueue_Detail" SCROLLING="yes" />
        <%else%>
            <FRAME SRC="UserQueue_Header.asp?SortField=<%=SortField%>&SortOrder=<%=SortOrder%>" NAME="UserQueue_Header" SCROLLING="no" NORESIZE />
            <FRAME SRC="UserQueue_Detail.asp?SortField=<%=SortField%>&SortOrder=<%=SortOrder%>" NAME="UserQueue_Detail" SCROLLING="yes" />  
        <%end if%>
</FRAMESET>

Ответы [ 2 ]

0 голосов
/ 27 октября 2011

Это работало для меня только в Firefox.Мне пришлось установить scrolling = yes для UserQueue_Header.

<SCRIPT language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></SCRIPT>
<SCRIPT language="javascript" type="text/javascript" src="jquery.frameready.js"></SCRIPT>

$(document).ready(function()
{
// Sync Header Frame with Detail Frame`
$.frameReady( function() {

    var ifr2 = $(window.parent.document.getElementsByName('UserQueue_Detail')[0].contentWindow);

   $(document).scroll( function(){

         ifr2.scrollLeft($(document).scrollLeft());
    });
  },
  "UserQueue_Header"
);

// Sync Detail Frame with Header Frame
$.frameReady( function() {

    var ifr1 = $(window.parent.document.getElementsByName('UserQueue_Header')[0].contentWindow);

   $(document).scroll( function(){

         ifr1.scrollLeft($(document).scrollLeft());
    });
  },
  "UserQueue_Detail"
);

});

Это работает как в IE, так и в Firefox:

    <SCRIPT language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></SCRIPT>

$(window).load( function(){

  var ifr1 = $(window.frames[0]);
  var ifr2 = $(window.frames[1]);

  ifr1.scroll( function(){ 

     ifr2.scrollLeft(ifr1.scrollLeft());
  });

  ifr2.scroll( function(){

     ifr1.scrollLeft(ifr2.scrollLeft());
  });
});

<frameset>
    <frame src="test.html"/>
    <frame src="test.html"/>
</frameset>
0 голосов
/ 24 октября 2011

Не используйте фреймы или используйте только заголовок iframe.И поместите заголовок, используя position: fixed;таким образом вы получите тот же эффект с frameset, а именно с липким заголовком.

...