2011-09-03 6 views
0

De l'intérieur d'un iframe, je dois en faire défiler un autre. L'emplacement de défilement est l'attribut href d'une étiquette. Je suis capable d'accéder à l'élément #ftoc qui contient le document que je veux faire défiler, un fichier html situé sur le même domaine.Faire défiler un élément d'un élément frère dans une page

J'ai ce code pour faire le défilement.

$('#cfrench', window.parent.parent.document).contents().find('#ftoc').contents().find('body').animate({scrollTop: $('a[href="'+text+'"]').offset().top-1},500); 

Il semble y avoir un problème avec .contents().find('body'). Quelle est la bonne façon de faire défiler vers ce href? Merci.

Répondre

0

Jetez un coup d'oeil sur la version this

var elementClicked = $('a[href="' + text + '"]'); 
var destination = $(elementClicked).offset().top; 
var $frame = $('#cfrench', window.parent.parent.document).contents().find('#ftoc').contents(); 
$frame.find("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination - 20 }, 500); 

P.S. Je n'ai pas pu vérifier le code parce que je n'ai pas les détails.

version 2.0 :) (solution de travail)

main.html

<iframe id="frame1" src="page-1.htm"></iframe> 
<iframe id="frame2" src="page-2.htm"></iframe> 

la page-1.html

<head> 
    <title></title> 
    <style type="text/css"> 
     #anchor { margin-top:400px; display:block; } 
    </style> 
    <script type="text/javascript" src="jquery-1.6.2.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#scroller').click(function() { 

       var $frame = $(window.parent.document).find('#frame2').contents(); 
       var $anchor = $frame.find('#anchor'); 


       var destination = $anchor.offset().top; 

       console.log(destination); 
       $frame.find("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination - 20 }, 500); 

       return false; 
      }); 
     }); 
    </script> 
</head> 
<body> 
    Page 1 
    <a id="scroller" href="#">Scroll iframe</a> 
</body> 

la page-2.html

<head> 
    <style type="text/css"> 
     #anchor { margin:400px 0; display:block; } 
    </style> 
</head> 
<body> 
    Page 2 
    <a id="anchor" href="anhor.html">Anchor</a> 
</body> 
+0

Merci pour les suggestions. Il ne défile toujours pas mais je vais le déboguer plus. – user823527

+0

Checkout solution de travail – Samich

+0

Merci beaucoup, je vais regarder cela et essayer de transférer le mécanisme à ma page. – user823527

Questions connexes