Скролиране на iframe

11 отговора 732 прегледа
#1

Скролиране на iframe

Трябва ми скрипт, чрез който мога да задам някакъв Img да контролира скролирането на iframe.
Пробвах Iframe Scroller като extension за Dreamweaver но той не работи единствено в глупавия IE иначе си работи перфектно на Opera и Firefox.
Най-общо казано искам да сложа два бутона, с които да се скролира нагоре и надолу за да се отърва от стандартния scroller.

Отговор
в отговор на ifr #2

Re: Скролиране на iframe

виждал съм такива на флащ, много добре изглеждат, що не пробваш така

Отговор
в отговор на ifr #3

Някой може ли...

Някой може ли да разбере от къде идва проблема с IE. Ако изпробвате това, което изпращам ще видите че в IE този frame само леко помръдва и не се скролира.
Използвани са текстови линкове за скролирането.
С другите Browser-и работи.

<html>
<head>
<meta http-equiv="Frame" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
background-color: #FFFFFF;
}
-->
</style>
<script language="javascript" type="text/javascript">
<!--
var iF_timer=null;

function stopScroll(){
clearTimeout(iF_timer)}

function Lvl_iFrameScroller(f,i,t,d,a){ //v1.0 4LevelWebs
var r="frames['"+i+"']",ie=document.all,y,c=(f&&!i)?f:(f&&i)?r:i;
var b=(!f)?r:f+"."+r,o=(eval("opener&&opener.parent."+b))?"opener.":'';
var v=(f&&i)?y=o+"parent."+f+"."+c:y=o+"parent."+r;
var e=(a==1)?'scrollLeft':'scrollTop',n =(a==1)?'pageXOffset':'pageYOffset';
var x=(a==1)?'p,0':(a==2)?'10000,0':(a==3)?'0,10000':'0,p',s=(d==0)?(ie)?t:t+.9:(ie)?-t:-(t-.9);
var p=(document.all)?eval(y+".document.body."+e+"")+s:eval(y+"."+n+"")+s;
var m =eval(y+".window.scrollTo("+x+")");
iF_timer=setTimeout("Lvl_iFrameScroller('"+f+"','"+i+"',"+t+","+d+","+a+")",1)
}
//-->
</script>
</head>

<body>
<iframe id="FRAME1" name="FRAME1" style="position:absolute; width:300px; height:300px; top:100px; left:100px; z-index:1" frameborder="yes" scrolling="no" src="1.htm"> </iframe>
<p><a href="javascript:;" onMouseOver="Lvl_iFrameScroller('','FRAME1',1,1,0)" onMouseOut="stopScroll()">UP</a></p>
<p><a href="javascript:;" onMouseOver="Lvl_iFrameScroller('','FRAME1',2,0,0)" onMouseOut="stopScroll()">DOWN</a> </p>
</body>
</html>

Отговор
в отговор на nimrod #4

Re: Скролиране на iframe

Просто не искам да има флаш на сайта иначе предполагам щеше да стане по-лесно.

Отговор
в отговор на ifr #5

Re: Някой може ли...



<html>
<head>
<meta http-equiv="Frame" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
background-color: #FFFFFF;
}
-->
</style>
<script language="javascript" type="text/javascript">
<!--//
var iF_timer=null;

function stopScroll(){
clearTimeout(iF_timer);
}
function Lvl_iFrameScroller(f,i,t,d,a){
/************************************
Такааа значи Macromedia
Dreamweaver този "шадраван на
мъдроста" е генерирал този код по
някакъв начин ...
************************************/
var r="frames['"+i+"']";
var ie=document.all;
var y;
var c=(f&&!i)?f:(f&&i)?r:i;
var b=(!f)?r:f+"."+r,o=(eval("opener&&opener.parent."+b))?"opener.":'';
var v=(f&&i)?y=o+"parent."+f+"."+c:y=o+"parent."+r;
var e=(a==1)?'scrollLeft':'scrollTop';
n =(a==1)?'pageXOffset':'pageYOffset';
var x=(a==1)?'p,0':(a==2)?'10000,0':(a==3)?'0,10000':'0,p';
s=(d==0)?(ie)?t:t+.9:(ie)?-t:-(t-.9);
var p=(document.all)?eval(y+".document.body."+e+"")+s:eval(y+"."+n+"")+s;
/*************************************
Не е с document.all понеже под
Opera си работи прилично добре ..
естествено може би има много
по-умен начин но това е
"бърз фикс" - тествано е
под IE6.0 и Opera 7.54 ..
Успех !!
*************************************/
var m=(document.namespaces)?(eval(y+".window.scrollBy("+x+")")):(eval(y+".window.scrollTo("+x+")"));
iF_timer=setTimeout("Lvl_iFrameScroller('"+f+"','"+i+"',"+t+","+d+","+a+")",1);
}
//-->
</script>
</head>

<body>
<iframe id="FRAME1" name="FRAME1" style="position:absolute; width:300px; height:300px; top:100px; left:100px; z-index:1" frameborder="yes" scrolling="no" src="1.htm"> </iframe>
<p><a href="forum4.htm" onclick="return false;" onMouseOver="Lvl_iFrameScroller('','FRAME1',1,1,0);" onMouseOut="stopScroll()">UP</a></p>
<p><a href="forum4.htm" onclick="return false;" onMouseOver="Lvl_iFrameScroller('','FRAME1',2,0,0);" onMouseOut="stopScroll()">DOWN</a> </p>
</body>
</html>



Редактирано от Учeщ на

Отговор
в отговор на Учeщ #6

Re: Някой може ли...

Много благодаря!!!!
С IE вече работи, възможно е с някой от старите да не работи но няма как да разбера.

Отговор
в отговор на ifr #7

Re: Някой може ли...

С IE5.0, Netscape 7.0, Opera 7.54, Mozilla Firefox 1.0 и Mozilla 1.7b си работи перфектно ...

Отговор
в отговор на Учeщ #8

Hei

Ave pich za kvo gi pravish teya raboti - samo za chest i slava li ? Za kvo ????

Отговор
в отговор на Galaxy #9

Re: Hei

Защото го може и защото е пич... . Защото, ако не го прави по цял ден ще четеш теми от рода на "От къде да си взема фрее картинки?"; "Къде има фрее ПХП хост?"; "Препоръчайте програмка за уеб страници...!"

Учещ, френдо... Добре се справяш!

...all those moments will be lost in time, like tears in rain. Time to die...
Отговор
в отговор на Galaxy #10

Re: Hei

Много интересен въпрос - ми честно казано и аз не знам - аиде че утре ме чака изпит по ЦОС

Отговор
в отговор на Учeщ #11

Re: Някой може ли...

Страхотно, IE 5 е повече от достатъчен.
Благодаря ти отново, спаси ме от голям редизайн :)

Отговор
в отговор на ifr #12

авто ресайз на ифраме

знаи мен ме драз къвто и да е скрол и като видях темата се сетих - възможно ли е иФрейма да се ресайзва в зависимост от съдържанието? конкретния пример е форум, вкаран в иФрейм, за да е част от цялостен сайт, а да не се отваря в нов прозорец...
идеи?
благодаря ви.

Отговор