11548 sujets

JavaScript, DOM et API Web HTML5

Salut,

Étant sur la création d'un thème pour Wordpress, j'en arrive au dernier coup de pinceaux qui sont souvent les plus subtil à mettre en place.

Donc me voila coincé. Mon problème est le suivant :

J'ai besoin de fixer une div en haut de page.
Vous crierez donc directement au scandale :"C'est qui ce type qui ne sais pas taper position: fixed dans son fichier style.css !"

En réaliter la difficulté est tout autre mon but est que la div qui initialement se situe à 30px du haut, suivent normalement le scroll puis lorsque ce scroll arrive au 30px, cette dive soit fixer en haut.

J'ai donc poster mon sujet ici car après de nombreuses recherches infructueuses, il me semble que seul le javascript puissent réaliser facilement ma demande.

je vous affiche donc mon code du header (c'est la div botmenu qui est concerner) :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<title><?php wp_title(''); ?><?php if(wp_title('', false)) { echo ' :'; } ?> <?php bloginfo('name'); ?></title>

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/css/jquery.fancybox-1.3.4.css" media="screen" />

<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="application/atom+xml" title="<?php bloginfo('name'); ?> Atom Feed" href="<?php bloginfo('atom_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<script>
jQuery(document).ready(function() {
jQuery('#contenu').hide();
jQuery('#home-content #deroule a#clic').click(function() {
jQuery('#contenu').slideToggle(400);
return false;
});
});
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<?php 
 wp_enqueue_script('jquery');
 wp_enqueue_script('flexslider', get_stylesheet_directory_uri() .'/js/jquery.flexslider-min.js');
 wp_enqueue_script('superfish', get_stylesheet_directory_uri() .'/js/superfish.js');
 wp_enqueue_script('fancybox', get_stylesheet_directory_uri() . '/js/jquery.fancybox-1.3.4.pack.js');
 wp_enqueue_script('effects', get_stylesheet_directory_uri() .'/js/effects.js');
 wp_enqueue_script('easing', get_stylesheet_directory_uri() . '/js/jquery.easing.1.3.js');
?>

<?php wp_get_archives('type=monthly&format=link'); ?>
<?php //comments_popup_script(); // off by default ?>

<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); wp_head(); ?>

</head>

<body <?php body_class(); ?>>
<div id="wrapper"><!-- wrapper begin -->
<div id="masthead"><!-- masthead begin -->
	<div id="head" class="clearfix">
		<div id="blogname">
		</div>
	</div>
	<div id="botmenu" class="clearfix">
		<?php wp_nav_menu( array( 'container_id' => 'submenu', 'theme_location' => 'primary','menu_class'=>'sfmenu','fallback_cb'=> 'fallbackmenu' ) ); ?>
		<div id="search_head"><?php get_search_form( $echo ); ?></div>
	</div><!--end masthead-->
</div>

<div id="casing">

<?php if ( is_front_page() ) { ?>

<div class="intro clearfix">
<h3>  <?php $introhead= get_option('tiar_introhead'); echo $introhead; ?>  </h3>
<p> <?php $introtext= get_option('tiar_introtext'); echo $introtext; ?> </p>

</div>
<?php } elseif (is_search() ) { ?>
<div id="crumbs">	<?php $mySearch =& new WP_Query("s=$s & showposts=-1");	$num = $mySearch->post_count;	echo $num.' r&eacute;sultats pour : '; the_search_query();?> (en <?php  get_num_queries(); ?> <?php timer_stop(1); ?> sec)</div>
<?php } else { ?>
<?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?>
<?php } ?>


La seule réponse que j'ai trouvé et qui reste buggé est :
<script type="text/javascript">
            window.onscroll=function()
            {   document.getElementById("botmenu").style.top = document.body.scrollTop;    }
 </script>


Donc avis aux amateurs
Merci pour ces sites seulement comme ceci est pour wordpress où est ce qu'il faut placer ces fichiers .js.
J'aurais dit : wordpress/wp-admin/js/
Bonsoir à toutes et à tous,

moi, j'ai plus court !

Voici le HTML :
<div id="fixed">Ceci est une division qui est positionnée au départ, à 200px du haut de la page, suit l’ascenseur en restant au minimum à 50px.</div>

Voici le css :
#fixed {
		position			: absolute;
		top				: 200px;
		right				: 10px;
		background-color		: lightyellow;
		border				: 5px double white;
		width				: 150px;
}


Voici le javascript :
window.onscroll = scrollIt;
function scrollIt()
{
	var node = document.getElementById("fixed");
//  XX = position top d'origine de la boite. Exemple : XX = 200;
//  YY = position TOP par rapport à la page. Exemple : YY = 50;
	var XX = 200;
	var YY = 50;
	if (document.all)
		var posit = (document.documentElement.scrollTop < (XX-YY)) ? XX : document.documentElement.scrollTop + YY;
	else	var posit = (window.pageYOffset                 < (XX-YY)) ? XX : window.pageYOffset                 + YY;
	node.style.top   = posit + "px";
	node.style.right =  10 + "px";
}


@+
Modifié par Artemus24 (29 Apr 2012 - 04:57)
Merci à tous et désolé de e pas vous avoir répondu plus tôt seulement ces 4 jours de "vacances..."
Bon je vais donc tester vos différentes techniques et essaierait d'établir un avis pour que ce post puissent devenir constructif pour les prochains.

Merci encore