Скролинг в 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)
Новые темыОбъявленияСвободное общение
04:53 Как раскрутить сайт? 
19:21 Webvork - международная товарная СРА сеть с сертифицированными офферами на Европу. 
19:01 Dao.AD: Монетизация и покупка Push/Pops/Inpage и Video трафика! 
15:59 Profit Pixels - In-House Форекс, Крипто, Трейдинг CPA Офферы | Еженедельные Выплаты | CPA до $950 
13:14 2Index - быстрая индексация страниц сайта и обратных ссылок 
14:59 Партнерская программа OWNR WALLET 
14:41 SharkBoss - партнёрская программа для монетизации ЛЮБЫХ видов трафика (включая спам). 
23:01 Партнёрка для вебмастеров 
20:47 EasyBusy.bz Проводи обмены легко и быстро вместе с нами 
19:17 Johnny.Do | Обмен криптовалют с круглосуточной техподдержкой 
18:13 Ural-obmen.ru — выгодный сервис обмена 
16:48 Obama.ru - безопасный обмен криптовалют и электронных денежных средств 
15:52 Продам аккаунты HH.RU 
15:24 Мобильные и Резидентные Прокси Для Соц Сетей | 3 Гб Бесплатно 
04:23 Точные прогнозы на футбол 
17:34 С юмором по жизни! 
08:11 Добро пожаловать в цифровой мир... 
20:36 Ням-ням! - 8 деликатесов, которые когда-то ели только бедные люди 
09:45 Подтягиваем физкультурку 
15:02 Замедление скорости YouTube будет происходить по естественным причинам 
09:47 Китайцы создали себе национальный Linux, напичканный ИИ-функциями