Webboard

Pełna wersja: Przerobienie Slide to top
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Adres forum:
demolka.net


Wersja silnika:
1.8.26


Opis problemu:
Ogromna prośba o przerobienie / dodanie możliwości przewijania strony do dołu w tym pluginie:
https://webboard.pl/thread-65690.html
Tak by można było użyć href=#top oraz href=#bottom

Kod pluginu:
Kod:
<?php

/********************************************************************************************************************************
*
*  Slide to top (/inc/plugins/stp.php)
*  Author: VicoWeb
*  Copyright: © 2016 @ VicoWeb @ All rights reserved
*  
*  Website: http://vicoweb.eu/
*  Description: Smooth transition to top.
*
********************************************************************************************************************************/

if(!defined("IN_MYBB"))
{
die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}
if(!defined("IN_ADMINCP"))
$plugins->add_hook("pre_output_page", "stp_get");

function stp_info()
{
   global $lang;
   $lang->load("config_mlmn");

return array(
"name" => "Slide to top",
"description" => "Smooth transition to top.",
"website" => "http://vicoweb.eu",
"author" => "Marcin Ruciński",
"authorsite" => "http://vicoweb.eu",
"version" => "1.1",
"compatibility" => "*",
"codename"   => "stp",
);
}

function stp_get(&$content)
{
if(!isset($change))
   {
$top = '        <script>
       $(document).ready(function() {
$(\'a[href^="#"]\').on(\'click\', function(event) {
var target = $( $(this).attr(\'href\') );
if( target.length ) {
event.preventDefault();
$(\'html, body\').animate({
scrollTop: target.offset().top
}, 1000);
}
});
});
</script>
</head>';
$content = str_replace('</head>', $top, $content);
       $bottom = '
<script>
$(document).ready(function() {
});
</script>
</body>';
       $content = str_replace('</body>', $bottom, $content);
       $change = true;
   }
}

?>
Hej, z tego co widzę, to przycisk do przeskrolowania jest widoczny cały czas, zatem proponuję rozwiązanie tego problemu bez pluginu, na podstawie kodu znalezionego w internecie.

Zacznij od stworzenia i ostylowania, np. pozycja absolutna i prawy dolny róg, to już wedle uznania, przycisku do scrollTop oraz scrollDown. Nadaj im jakieś ID (dwa różne). W moim przypadku stworzyłem dwa zwykłe linki:
Kod:
<a href="#" id="scrollToTop">scrollToTop</a>
<a href="#copyright" id="scrollToDown">scrollToDown</a>
 
Dodaj gdzieś w kodzie, może być w headerinclude czy header taki JS do obsługi kliknięcia w te przyciski:
Kod:
<script>
$('#scrollToTop').each(function(){
$(this).click(function(){ 
$('html,body').animate({ scrollTop: 0 }, 'slow');
return false; 
});
});

$('#scrollToDown').each(function(){
$(this).click(function(){ 
$('html, body').animate({ scrollTop:  $("#copyright").offset().top - 50 }, 'slow');
return false; 
});
});
</script>

I teraz go pozmieniaj, czyli: 
#scrollToTop to ID Twojego przycisku, po którego kliknięciu przeniesie nas na górę strony. 
#scrollToDown wiadomo, ID przycisku, po kliknięciu którego przeniesiemy się do dołu strony.
#copyright to ID elementu w stopce forum, tu chodzi o taki element po prostu na dole strony
Dziękuję, działa ;) Pozdrawiam serdecznie!