Скролинг в DLE, нужна помощь..
Страницы: 1
Скролинг в DLE, нужна помощь.., нужно адаптировать скролинг под DLE
Добрый день. Имеется два кода:
Первый (исходник):

Код
 <div class='infinite-scroll-button'>
<a href="#" onclick="EnableInfiniteScroll(); return false;"></a>
</div>
</div>
<script>
  //<![CDATA[
    $(function(){
      var wnd = $(window), doc = $(document), ftr = $('#footer')
      
      var left_column = $('#left-column'),
          middle_column = $('#middle-column'),
          right_column = $('#aside')
      
      function showPosts(posts){
        left_column
          .append(posts[0])
          .append(posts[1])
          .append(posts[2])
          
        middle_column
          .append(posts[3])
          .append(posts[4])
          .append(posts[5])
          
        right_column
          .append(posts[6])
          .append(posts[7])
          .append(posts[8])
      }
      
      window.EnableInfiniteScroll = function(){
      
        // Скрыть кнопку активации и начать моргать кошкой
        $('.infinite-scroll-button').hide()
        Fotki.blink_kitty()
      
        var page = 0, ajaxed = false
        
        function BottomPos(el){
          return el.offset().top + el.height()
        }
        
        function AjaxIt(){
          var window_bottom_position = wnd.scrollTop() + wnd.height()
          var start_scroll_at = 1e100, start_scroll_off = 150
          start_scroll_at = Math.min(start_scroll_at, BottomPos(left_column))
          start_scroll_at = Math.min(start_scroll_at, BottomPos(middle_column))
          start_scroll_at = Math.min(start_scroll_at, BottomPos(right_column))
          if (window_bottom_position >= start_scroll_at - start_scroll_off && !ajaxed){
            ajaxed = true
            $.ajax({
              url: '/',
              data: {
                format: 'js',
                page: ++page,
                count: 9,
                offset: 56
              },
              success: function(data){
                Analytic.page_view("/")  // счетчик главной страницы
                ajaxed = false
                showPosts(data)
              },
              error: function(xhr, msg, err){
                ajaxed = false
                console.log('Error while loading page ' + page + ' via ajax!')
                console.log(xhr)
                console.log(msg)
                console.log(err)
              },
              dataType: 'json'
            })
          }
        }
        
        wnd.scroll(AjaxIt)
        AjaxIt()
      }
      
    })
  //]]>
</script> 

И второй (рабочий на DLE):
Код
<script language="javascript" type="text/javascript">

    var navAjaxUrlIE = /*@cc_on!@*/false;
    var lastExtNewsUrl = "";
    var lastExtNewsPage = 0;
    var mainClassNewsNavigation = "bnnavi"; // navigation.tpl - название класса основного элемента
    function loadExtNews(){
   
        $('.bnnavi').hide()
      
        if( lastExtNewsUrl )
            {
                var url = lastExtNewsUrl.replace( "/page/" + lastExtNewsPage, "/page/" + ( lastExtNewsPage + 1 ) ) + "";
                lastExtNewsPage++;
            }
                else
            {
                var url = location.href;
                url = url.replace( new RegExp( "#(.*)", "g" ), "" ) + "";
                
                var RegExpC = new RegExp( "/page/([0-9]+)", "g" );
                if( url.match( RegExpC ) )
                    {
                        var page = url.match( /page\/[0-9]{1,50}/ ) + "";
                        page = parseInt( page.match( /[0-9]{1,50}/ ) );
                        var newPage = page + 1;
                        url = url.replace( "/page/" + page, "/page/" + newPage ) + "";
                        lastExtNewsPage = newPage;
                    }
                        else
                    {
                        url = url + "page/2/";
                        lastExtNewsPage = 2;
                    }
            }
        
        lastExtNewsUrl = url;
        
        $( "#dle-content ." + mainClassNewsNavigation + " a" ).html( "<span>Идёт загрузка...</span>" );
        
        $.ajax({
            url: url,
            data: "",
            success: function( data ){
                
                //var parser = new DOMParser();
                //var doc = parser.parseFromString( data, "text/html" );
                //$( "#dle-content ." + mainClassNewsNavigation ).remove();
                //$( "#dle-content" ).html( $( "#dle-content" ).html() + doc.getElementById( "dle-content" ).innerHTML );
                
                var cont = $( data ).find( "#dle-content" );
                $( "#dle-content ." + mainClassNewsNavigation ).remove();
                $( "#dle-content" ).html( $( "#dle-content" ).html() + $( cont[0] ).html() );   
                $( "#dle-content ." + mainClassNewsNavigation ).html( "<a href=\"#\" onclick=\"loadExtNews(); return false;\" class=\"loadExtNews\"><span>Загрузить ещё</span></a>" );
                
                if( !navAjaxUrlIE ) history.pushState( {}, "", lastExtNewsUrl );
            },
            error: function( xhr, ajaxOptions, thrownError ){
                // Можно по номеру ошибки определять, но в любом случае ответ не тот, показывать нечего, страхуемся )))
                $( "#dle-content ." + mainClassNewsNavigation ).html( "<a href=\"#\" onclick=\"return false;\" class=\"loadExtNews\"><span>Новостей больше нет</span></a>" );
            },
            dataType: "html",
            type: "POST"
        });
    }
    $( document ).ready(
        function(){
            $( "#dle-content ." + mainClassNewsNavigation ).html( "<a href=\"#\" onclick=\"loadExtNews(); return false;\" class=\"loadExtNews\"><span>Загрузить ещё</span></a>" );
        }
    );
</script>
 
Так вот, как вы поняли, 2 код работает на DLE, первый нет. Нужно адаптировать первый код, по мотивам второго. Либо же сделать по-другому: первый раз нужно нажимать на "загрузить ещё", а все последующие должны загружать новости автоматически (собственно это и есть описание первого кода). Сам попробовал.. не получается. Кто может справиться?..
Изменено: LeWin - 2 Июля 2013 19:14
Страницы: 1
Похожие темы:
  03.12.2014 00:05  Нужна практика по js
  20.05.2014 11:12  Нужна помощь
  24.04.2014 13:00  Нужна помощь JS программиста
  22.04.2014 13:29  Нужна помощь в реализации.
  15.03.2013 11:20  Нужна помощь
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
13:54 Dao.AD: Монетизация и покупка Push/Pops/Inpage и Video трафика! 
14:50 Индексация страниц 
12:36 У кого новостник, дайте пару советов плиз 
13:53 AviTool - мощный инструмент для автоматизации работы с Avito 
17:01 Absence в Армении 
23:19 Ребята подскажите какими сервисами и прогами вы пользуетесь для SEO продвижения? 
14:50 Какую выбрать тему/нишу для сайта? 
15:28 Рассылки СМС/SMS, Вайбер/Viber, Ватсап/Whatsapp, Телеграм/Telegram любой тематики по всему миру 
22:49 Обменник криптовалюты OnlyCrypto 
20:21 BestX24 - быстрый и безопасный обменник криптовалют и электронных денежных средств 
19:49 CactusPay.PRO | Умная платёжная система с выводом в USDT TRC-20 
16:02 Продам аккаунты Gmail USA IP | Gmail MIX IP | Outlook Old 
19:37 Продажа лидов: форекс, инвестиции, нативка, гемблинг, чарджбеки 
15:45 Резидентные Прокси Ротационные BACKCONNECT США Европа Микс 
05:04 Точные прогнозы на футбол 
14:01 Union Pharm - топовая фарма-партнерка для профессионалов! 
10:59 Ням-ням! - 8 деликатесов, которые когда-то ели только бедные люди 
12:23 150+ хакерских поисковых систем и инструментов 
08:38 Накрутка поисковых подсказок 
17:41 Стряхнуть обыденность - об Агасфере 
10:54 Добро пожаловать в цифровой мир...