Скролинг в 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)
Новые темыОбъявленияСвободное общение
01:26 Стоит ли добавлять сайт в Rambler топ 100? 
21:17 Webvork - международная товарная СРА сеть с сертифицированными офферами на Европу. 
21:08 Влияет ли кодировка на индексацию позиции в поиске? 
17:32 Dao.AD: Монетизация и покупка Push/Pops/Inpage и Video трафика! 
14:51 Adtrafico - Правильная партнёрская сеть под бурж трафик 
14:03 Партнерская программа OWNR WALLET 
11:59 2Index - быстрая индексация страниц сайта и обратных ссылок 
18:59 Сервис валидации e-mail баз 
18:37 Ural-obmen.ru — выгодный сервис обмена 
18:18 Obama.ru - безопасный обмен криптовалют и электронных денежных средств 
17:28 Мобильные и Резидентные Прокси Для Соц Сетей | 3 Гб Бесплатно 
11:00 SpeedyIndex - ускорение индексирования ссылок в Google. 100 ссылок в подарок. 
10:41 Coin Click.cc - Быстрый и надежный обмен электронных валют в два клика 
22:18 SwapPix.io - быстрый и безопасный обменник криптовалют. 
20:29 Точные прогнозы на футбол 
21:12 Каспкрски ОС 
22:58 У меня дикая просадка по РСЯ за последние 3 суток 
21:51 Linux - это максимальная свобода 
21:33 Ням-ням! - 8 деликатесов, которые когда-то ели только бедные люди 
14:38 Продажи российских компьютеров в РФ выросли вдвое 
12:29 Карпаты