2010-09-17 4 views
0

J'ai un projet jQuery dans lequel j'ouvre une iframe avec des barres de défilement (scrolling = auto) dans un popup overlay (boxy plugin) avec une animation. Lorsque la superposition est fermée, je veux que le popup apparaisse et disparaisse. Jusqu'ici tout va bien, mais tandis que la taille de l'iframe diminue, les barres de défilement apparaissent soudainement avant que tout ne disparaisse.Masquer les barres de défilement IFRAME avec javascript

J'ai essayé de manipuler l'attribut de défilement iframes mais cela ne semble pas exister sur l'objet DOM des iframes à ce moment-là. Quelqu'un peut-il aider?

Répondre

4

Pas besoin de JavaScript. Il suffit d'utiliser le CSS suivant le iframe:

overflow: hidden; 
+0

Cela a fonctionné merci – Koen

0

IIRC, les barres de défilement appartiennent à la page encadrée, et doivent être désactivé là. Si vos iframes sont interdomaines, cela peut ne pas être possible.

+0

J'ai essayé d'accéder à la fenêtre iframes, les cadres et les propriétés du document, mais tous étaient indéfinis. Initialement, l'iframe est inter-domaine (service d'enquête) mais à la fin, nous avons une page d'atterrissage dans notre domaine qui déclenche le script de fondu. – Koen

0

sans cadre iframe sans barres de défilement:

var el = document.createElement("iframe"); 
var iframe_style = "overflow:hidden; margin:0;padding:0;" 
var ifattr = { 
     id: 'my_iframe', width: '520', height: '300', 'scrolling': 'no', 'marginWidth':0, 
     'marginHeight':0, 'noResize': 0, 'border': 0, 'frameBorder':0, 'frameSpacing':0, 
     'background': 'transparent','allowTransparency': 'allowTransparency', 
     'name' :'my_iframe','style':iframe_style}; 

for (var i in ifattr) { 
     el.setAttribute(i, ifattr[i]); 
} 

Ce JS est pur, peut être facilement porté à jQuery avec l'utilisation de attr(), testé dans IE6-8, FF. Le document à l'intérieur devrait utiliser: body {overflow: hidden;} - non testé si c'est vraiment nécessaire.

Questions connexes