Скролинг в 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)
Новые темыОбъявленияСвободное общение
06:11 Продвижение по ключам 
09:47 Adsense личный опыт 
13:13 LOSPOLLOS.COM - Конвертим по рецепту Хайзенберга. Dating, Mainstream, Binary Options 
13:47 Webvork - международная товарная СРА сеть с сертифицированными офферами на Европу. 
08:27 Ищу специалистов 
08:18 Прибыль 200$ - 400$, за каждую 1000 уников! Google, FB и тд 
08:12 ру гембла 
04:05 Просто $0.04/IP 9PROXY.COM Резидентные прокси Неограниченная пропускная способность Уникальная политика замены Без чёрного списка 
23:00 №1 Рассылка / Инвайтинг [TELEGRAM] | Приватный метод 
23:00 Trustpilot Reviews | Подниму рейтинг вашей компании 
22:59 Продвижение YouTube видео в топ поиска | Любой тип контента | Гарантия результата 
22:59 Установка|Настройка|Доработка|Наполнение сайтов|Дизайн|3D|Видеомонтаж 
22:04 BestX24 - быстрый и безопасный обменник криптовалют и электронных денежных средств 
19:58 Создам под вашу нишу сетку сайтов-сателлитов для привлечения целевого трафика 
07:35 Что случилось с форумом? 
03:07 Всего п онемногу 
12:45 Куплю проигрышные букмекерские аккаунты 
11:55 Union Pharm - топовая фарма-партнерка для профессионалов! 
17:09 Точные прогнозы на футбол 
10:00 Ну что, кто куда деваете свои сайты? 
16:22 Компьютерная мышь