Скролинг в 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)
Новые темыОбъявленияСвободное общение
16:11 Давайте начнем обмен отзывами Google maps 
22:14 Webvork - международная товарная СРА сеть с сертифицированными офферами на Европу. 
13:03 AntiBot Cloud - бесплатный скрипт и сервис защиты сайтов 
13:04 DreamCash.tl - заработок на онлайн-видео. До 95% отчислений, отличный конверт! 
20:13 Dao.AD: Монетизация и покупка Push/Pops/Inpage и Video трафика! 
15:04 Adtrafico - Правильная партнёрская сеть под бурж трафик 
19:21 LOSPOLLOS.COM - Конвертим по рецепту Хайзенберга. Dating, Mainstream, Binary Options 
04:16 Просто $0.04/IP 9PROXY.COM Резидентные прокси Неограниченная пропускная способность Уникальная политика замены Без чёрного списка 
19:49 Sectormoney.com - быстрый и удобный обменник 
18:51 TELEGRAM EXPERT — Многоцелевой комбайн по работе с Telegram! 
02:16 BetaTransfer касса — это надежный сервис приема платежей в сфере High Risk 
21:43 Coin Click.cc - Быстрый и надежный обмен электронных валют в два клика 
15:03 Продам аккаунты 1 ТБ Облако@Mail.ru 
14:59 PlayPay.biz - Лутбоксы с товарами, играми 
23:14 Точные прогнозы на футбол 
20:09 Сколько сейчас стоит наполнение ИМ? 
12:43 Куплю проигрышные букмекерские аккаунты 
04:33 Половина скидок на распродажах — фейк 
07:53 НейроБабушка наказывает мошенников 
19:59 Осталось 3-5 месяцев до блокировки YouTube в России, — заявил Клименко 
19:57 Пятница 13-ое: VK принял радикальное решение и закрыл доступ к порно контенту