Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
493
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.59 KB | None | 0 0
  1. <script type="text/javascript">
  2. // workaround pro zobrazeni novinek
  3. // tento kod neni treba po odstraneni puvodni implementace
  4. jQuery("#novinky_obsah2").children().show();
  5.  
  6. // TODO: zbavit se inline stylu
  7.  
  8. // upravy layoutu - tady by to nemelo zustat, je nutne upravit styly
  9. jQuery("#novinky_obsah2, #novinky_obsah, #novinky_obsah2 > div").css({display: 'block', position:'relative', overflow: 'hidden', float: 'none'});
  10. jQuery("#novinky_obsah2").css({height : 'auto', position : 'absolute'});
  11.  
  12. // funkce pro merge defaultnich parametru s predanymi
  13. // muze se hodit leckde, proto je definovana v globalnim namespace
  14. function mergeObjects(defaultObject, customObject) {
  15.     for (var property in customObject) {
  16.         if (! customObject.hasOwnProperty(property)) {
  17.             continue;
  18.         }
  19.         defaultObject[property] = customObject[property];
  20.     }
  21.     return defaultObject;
  22. }
  23.  
  24. // vytvoreni fake objektu console v pripade, ze prohlizec nezna tento objekt ci jeho metodu log
  25. // pro uplnost uvedme, ze volani console.log je dostupne ve FF s doplnkem Firebug
  26. if (! window.console) {
  27.     window.console = {log: function() {}};
  28. }
  29.  
  30. if (! console.log) {
  31.     console.log = function() {};
  32. }
  33.  
  34. /**
  35.  * Trida ContentAutoscroll umoznuje rotovat potomky daneho elementu
  36.  * parametry konstruktoru:
  37.  *  container : jQuery selektor elementu, jehoz (jejichz) potomci maji rotovat
  38.  *  config : (nepovinny parametr) objekt parametru, ktere maji prepsat defaultni konfiguraci)
  39.  *      timeout : cas mezi dvema rotacemi
  40.  *      animationDuration : rychlost animace - hodnota v ms | slow | fast
  41.  * Predpoklada se, ze cilovy element ma nastaveno position: absolute a nema omezenu vysku.
  42.  * Jeho predek ma position relative ci absolute a ma vysku omezenu na hodnotu vysky jednotlivych rotovanych potomku, jejichz vyska
  43.  * by nejspis mela byt jednotna. Vlastnost rodice ciloveho elementu overflow se predpoklada nastavena na hidden.
  44.  * Implementace posouva pri kazde animaci cilovy element o vysku jeho rodice vzhuru.
  45.  * Pri zobrazeni posledniho potomka je pred provedenim animace nastavena hodnota top ciloveho elementu na nula,
  46.  * cimz se zobrazi prvni potomek. Z tohoto duvodu je pri inicializaci vytvoren za poslednim potomkem klon potomka prvniho.
  47.  *
  48.  * 5.11.2010
  49.  * info@smallslave.cz
  50.  */
  51. function ContentAutoscroll(container, config) {
  52.     console.log("ContentAutoscroll()", arguments);
  53.    
  54.     if (this.constructor != arguments.callee) {
  55.         throw new Error("function ContentAutoscroll is a constructor.");
  56.     }
  57.     if (arguments.length < 1) {
  58.         throw new Error("At least one parameter expected");
  59.     }
  60.    
  61.     this.initParams(config);
  62.     this.initContainerElement(container);
  63.     this.createFirstItemCloneAtTheEndOfContainer();
  64.    
  65.     this.visibleHeight = this.containerElement.parent().height();
  66.     this.totalHeight = this.containerElement.height();
  67.    
  68.     this.scheduleAnimation();
  69.    
  70.     console.log("ContentAutoscroll() - complete");
  71.    
  72. }
  73.  
  74. ContentAutoscroll.prototype.initParams = function(config) {
  75.     this.params = {
  76.         // interval v ms, po kterem dojde ke zmene obsahu
  77.         interval : 5000,
  78.         // rychlost animace: ms, pripadne retezec 'slow' ci 'fast'
  79.         animationDuration : 500
  80.     };
  81.     mergeObjects(this.params, config);
  82. };
  83.  
  84. ContentAutoscroll.prototype.initContainerElement = function(selector) {
  85.     this.containerElement = jQuery(selector);
  86.     if (this.containerElement.length < 1) {
  87.         console.log("WARNING: ContentAutoscroll() - container element identified by " + selector + "  doesn't exist");
  88.     }
  89. };
  90.  
  91. ContentAutoscroll.prototype.createFirstItemCloneAtTheEndOfContainer = function() {
  92.     var firstItem = this.containerElement.children().first();
  93.     var clone = firstItem.clone();
  94.     this.containerElement.append(clone);
  95. };
  96.  
  97. ContentAutoscroll.prototype.scheduleAnimation = function() {
  98.     console.log("ContentAutoscroll.scheduleAnimation", this);
  99.     var self = this;
  100.     setTimeout(function() {self.animate();}, this.params.interval);
  101. };
  102.  
  103. ContentAutoscroll.prototype.animate = function() { 
  104.     console.log("ContentAutoscroll.animate", this);
  105.     var currentTop = this.containerElement.position().top; 
  106.     if (this.totalHeight + currentTop <=  this.visibleHeight) {
  107.         currentTop = 0;
  108.         this.containerElement.css('top', '0');
  109.     }
  110.     var newTop = currentTop - this.visibleHeight;
  111.     var self = this;
  112.     console.log("ContentAutoscroll.animate - newTop = ", newTop);
  113.     this.containerElement.animate({'top': newTop + 'px'}, this.animationDuration, function() {self.scheduleAnimation();});
  114. };
  115.  
  116. // vytvoreni objektu ContentAutoscroll (po vytvoreni dokumentu)
  117. // tuto variantu jsem nemohl pouzit, nebot jsem testoval v prohlizeci primo nad cilovym dokumentem
  118. // pouzival jsem tedy primo volani konstruktoru tridy:
  119. // new ContentAutoscroll("#novinky_obsah2");
  120. jQuery(function() {
  121.         // pouziti vychozi konfigurace
  122.         // new ContentAutoscroll("#novinky_obsah2");
  123.         // alternativni zpusob s predanim parametru - nastavime timeout a rychlost animace
  124.         new ContentAutoscroll("#novinky_obsah2", {interval : 3000, animationDuration : 'fast'});
  125. });
  126. </script>
  127. <?php
  128.  
  129. class novinky {
  130.  
  131.  
  132.   public function write(){
  133.  
  134.  
  135.    $i=1;
  136.    $page = $_SESSION['page'];
  137.    $result = mysql_query("SELECT content FROM "._DB_PREFIX_."block_novinky WHERE `page_name`='$page'");
  138.     if($result){
  139.       while($row = mysql_fetch_array($result)){
  140.          
  141.         $obsah[$i] = "<div id=\"novinka".$i."\"><div id=\"novinky_text\">".$row['content']."</div></div>";
  142.         $i++;
  143.          
  144.        }
  145.        
  146.     }
  147.  
  148.   ?>
  149.   <div id="novinky">
  150.      <div id="novinky_obsah">
  151.       <div id="novinky_obsah2">
  152.   <?
  153.  
  154.     $i=1;
  155.     echo $obsah[1];
  156.     echo $obsah[2];
  157.     echo $obsah[3];
  158.    
  159.  
  160.    
  161.   ?></div></div></div><?
  162.   }
  163.  
  164.  
  165. }
  166.  
  167. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement