Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1093 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Jquery - Bug script perso- style Jcarousel (très très basique!!)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Jquery - Bug script perso- style Jcarousel (très très basique!!)

n°1765215
bizzard85
Posté le 26-07-2008 à 14:46:45  profilanswer
 

Salut
je me mets à Jquery (et à Javascript) et je tente un petit script.
Je vous donne le code:
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
#news {
        width:300px;
        height:300px;
        margin: 0 auto 0 auto;
        background-color:aqua;
        padding:10px;
        }
#news_in {
        width:260px;
        height:205px;
        background-color:yellow;
        margin:10px;
        overflow:hidden;
 
}
#news_bloc_move {
        width:260px;
        height:205px;
        }
.news_bloc_item {
        height:100px;
        background-color:pink;
        margin-bottom:5px;
}
.news_bloc_item p{
        margin:0;
 
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $(".down" ).click(function(){
       
      var top=parseInt($("#news_items_bloc" ).css("margin-top" ));
     
       $("#news_bloc_move" ).animate({
                        marginTop: "+=210px"
        },  "slow" );
    });
        $(".up" ).click(function(){
        $("#news_bloc_move" ).animate({
            marginTop: "+=-210px"
        }, "slow" );
    });
 });
</script>
</head>
<body>
<div id="news">
<a href="#" class="up">Up
<a href="#" class="down">Down
<div id="news_in">
<div id="news_bloc_move">
<?php
for ($i=1;$i<10;$i++) {
echo "<div class=\"news_bloc_item\">\n";
echo "Bloc".$i." \n";
echo "</div>\n";
}
?>
</div>
</div>
</div>
</body>
 
Bon c'est classique. Vous remarquerez tout de suite mon soucis.
Si dès le début je "monte" ou si tout à la fin je "descends" trop, je n'ai plus rien à afficher et ça continu toujours à descendre.
Je voudrais donc cacher (avec hide) une des flèches au début ou tout à la fin avec une structure conditonnelle du style:
if  ( top<0 ) {je cache la flèche vers le haut }
 
ou
 
if  ( top> un certain nombre de pixel(multiple de 210) ) {je cache la flèche vers le bas}
 
J'espère avoir été assez clair.
Si vous avez une idée, je suis preneur !
 
Merci.

mood
Publicité
Posté le 26-07-2008 à 14:46:45  profilanswer
 

n°1765356
mIRROR
Chevreuillobolchévik
Posté le 27-07-2008 à 08:05:06  profilanswer
 

bon deja tu crées deux fois la meme fonction pour rien
apres je connais pas trop jQuery mais ca devrait marcher

Code :
  1. $(document).ready(function(){
  2.    $(".down .up" ).click(function () {
  3.      var direction = this.className == "up" ? -1 : 1;
  4.      var top=parseInt($("#news_items_bloc" ).css("margin-top" ));
  5.      if (top<0)
  6.          $(".up" ).hide();
  7.      else if (top>xxx)  
  8.          $(".down" ).hide();
  9.      else $(".up .down" ).show();
  10.        $("#news_bloc_move" ).animate({
  11.            marginTop: "+="+direction*210+"px"
  12.        }, "slow" );
  13.    });
  14. });


Message édité par mIRROR le 27-07-2008 à 08:05:24

---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
n°1765657
bizzard85
Posté le 27-07-2008 à 23:49:58  profilanswer
 

Salut
%

n°1765658
bizzard85
Posté le 27-07-2008 à 23:50:09  profilanswer
 

Salut
 
Merci pour ta réponse. Effectivement il y a encore du boulot.
 
En copier coller et presque tel quel (sans les xxx) ton code ne marche pas...mais je précise faut que je vérifie tout ça.
Tu me proposes de bonnes idées (ça m'a même fait marrer tellement je suis con).J'aime bien le +direction.Bon j'ai fait basique pour ma défense !!
 
J'ai trouvé une (sale) solution.
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2.                     "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <style type="text/css">
  6. #news {
  7.         width:300px;
  8.         height:300px;
  9.         margin: 0 auto 0 auto;
  10.         background-color:aqua;
  11.         padding:10px;
  12.         }
  13. #news_in {
  14.         width:260px;
  15.         height:205px;
  16.         background-color:yellow;
  17.         margin:10px;
  18.         overflow:hidden;
  19. }
  20. #news_bloc_move {
  21.         position:relative;
  22.         top:0px;
  23.         width:260px;
  24.         height:205px;
  25.         }
  26. .news_bloc_item {
  27.         height:100px;
  28.         background-color:pink;
  29.         margin-bottom:5px;
  30. }
  31. .news_bloc_item p{
  32.         margin:0;
  33. }
  34. </style>
  35. <script src="http://code.jquery.com/jquery-latest.js"></script>
  36. <script type="text/javascript">
  37. $(document).ready(function(){
  38.         $(".prev" ).hide();
  39.         $(".next" ).click(function()
  40.                 {
  41.                 $(".prev" ).show();
  42.                 $("#news_bloc_move" ).animate({ "top": "+=-210px" }, "slow" );
  43.                 if (parseInt($("#news_bloc_move" ).css("top" )) <=-630) { $(".next" ).hide(); }
  44.                 });
  45.         $(".prev" ).click(function()
  46.                 {
  47.                 $(".next" ).show();
  48.                 $("#news_bloc_move" ).animate({"top": "+=210px"},  "slow" );
  49.                 if (parseInt($("#news_bloc_move" ).css("top" )) >=-210) { $(".prev" ).hide(); }
  50.         });
  51. });
  52. </script>
  53. </head>
  54. <body>
  55. <div id="news">
  56. <a href="#" class="next">Next</a>
  57. <a href="#" class="prev">Prev</a>
  58. <div id="news_in">
  59. <div id="news_bloc_move">
  60. <?php
  61. for ($i=1;$i<11;$i++) {
  62. echo "<div class=\"news_bloc_item\">\n";
  63. echo "<p>Bloc".$i."</p>\n";
  64. echo "</div>\n";
  65. }
  66. ?>
  67. </div>
  68. </div>
  69. </div>
  70. </body>


 
Ce script marche, mais je te l'accorde, il est pas très joli, j'essaierai de le rectifier, promis.
Donc il marche mais ...
Il marche quand tu cliques tranquillement sur les next et prev (j'ai changé les up et down).
Mais si tu décides de cliquez très rapidement sur les next, par exemple, (plus de 5 fois) et bien le bouton next ne disparait pas et on continue à descendre.
 
Vraiment...
 
Bon je continue !
 
Merci !!

n°1765668
mIRROR
Chevreuillobolchévik
Posté le 28-07-2008 à 00:16:18  profilanswer
 

ok bon sur mon script je me suis planté sur les slecteurs je pense
au lieu de $('.up .down') c est tout simplement $('.up, .down') ou $('.up','.down') faut tester
mais ensuite mon script risque d avoir le meme probleme que le tien
comme la transition est asynchrone si tu cliques 5 fois tres vite top sera encore a zero pendant que le script gere la transition vers 1000
animate peut prendre une callback en parametre qui sera éxécutée seulement à la fin de la transition  
 

Code :
  1. $(document).ready(function(){
  2.    $(".prev",".next" ).click(function () {
  3.      var direction = this.className == "up" ? -1 : 1;
  4.      var top=parseInt($("#news_items_bloc" ).css("margin-top" ));
  5.      var transParams = {marginTop: "+="+direction*210+"px"};
  6.      function testHeight() {
  7.            if (top<0)
  8.                $(".prev" ).hide()
  9.            else if (top>xxx)  
  10.                $(".next" ).hide()
  11.            else
  12.                $(".prev",".next" ).show();
  13.      }
  14.      $("#news_bloc_move" ).animate(transParams, "slow", testHeight());
  15.    });
  16. });


bon voila c ets un peu moins crade :D et ca devrait marcher
mais vu que t as pas capté pourquoi mon script marchait pas c est que t as pas de debugger
installe firebug pour firefox tu vas voir ca change la vie :D


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Jquery - Bug script perso- style Jcarousel (très très basique!!)

 

Sujets relatifs
Comment insérer un script et un code htlm sur un site?Afficher le pic de charge dédiée via un script WMI ou VBS (BGInfo)
Insérer une condition VB dans Microsoft Script EditorScript pr bloquer laffichage de mon site à partir d'un autre site web?
Script longs sur Pages Free -> Proc stockée ou php ?Script SFTP entre 2 serveur windows
Script PHP sous UNIXbesoin d aide script de protection allopass
filezilla question très noobUpload script PHP => serveur FTP
Plus de sujets relatifs à : Jquery - Bug script perso- style Jcarousel (très très basique!!)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR