Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.02.2016, 12:21
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Конфликт скриптов
Добрый день!

Я пытаюсь сделать подсветку кода на сайте и горизонтальную прокрутку колёсиком мыши. По отдельности работают на ура, но при инициализации обоих скриптов одновременно, перестаёт работать горизонтальная прокрутка колёсиком мыши.

Уже пытался и через noConflict — ни в какую...

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/styles/default.min.css">

<style>
pre {
  width: 300px;
  overflow: auto;
}
</style>

</head>
<body>
<pre class="color"><code class="PHP">function updateNumbers() {
	global $wpdb;
	$querystr = "SELECT $wpdb-&gt;posts.* FROM $wpdb-&gt;posts WHERE $wpdb-&gt;posts.post_status = 'publish' AND $wpdb-&gt;posts.post_type = 'post' ";
	$pageposts = $wpdb-&gt;get_results($querystr, OBJECT);
		$counts = 0 ;
if ($pageposts):
	foreach ($pageposts as $post):
		setup_postdata($post);
		$counts++;
		add_post_meta($post-&gt;ID, 'incr_number', $counts, true);
		update_post_meta($post-&gt;ID, 'incr_number', $counts);
	endforeach;
endif;
} 

add_action ( 'publish_post', 'updateNumbers' );
add_action ( 'deleted_post', 'updateNumbers' );
add_action ( 'edit_post', 'updateNumbers' );</code></pre>









<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.js"></script>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>

<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/highlight.min.js"></script>
 
<script>
// По отдельности работают на Ура, вместе — никак...




// Активация горизонтальной прокрутки
jQuery('pre')
  .data('scrollLeft', -1)
  .mousewheel(function(event, delta) {

    jQuery(this).data('scrollLeft', this.scrollLeft);

    this.scrollLeft -= (delta * 50);
    return false;
});




// Активация подсветки кода
hljs.initHighlightingOnLoad();
</script>


</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 28.02.2016, 12:44
Аспирант
Отправить личное сообщение для Alex_63 Посмотреть профиль Найти все сообщения от Alex_63
 
Регистрация: 22.08.2015
Сообщений: 71

snovapavel,
А если поменять местами инициализацию Подсветки и скроллинга ?
Ответить с цитированием
  #3 (permalink)  
Старый 28.02.2016, 18:00
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Я не первый год замужем, и так, само-собой, уже пробовал ) Сейчас придёт товарищ «Рони» и покажет где я был неправ. Просто нужно подождать немного.
Ответить с цитированием
  #4 (permalink)  
Старый 28.02.2016, 18:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

snovapavel,
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/styles/default.min.css">

<style>
pre {
  width: 300px;
  overflow: auto;
}
</style>

</head>
<body>
<pre class="color"><code class="PHP">function updateNumbers() {
	global $wpdb;
	$querystr = "SELECT $wpdb-&gt;posts.* FROM $wpdb-&gt;posts WHERE $wpdb-&gt;posts.post_status = 'publish' AND $wpdb-&gt;posts.post_type = 'post' ";
	$pageposts = $wpdb-&gt;get_results($querystr, OBJECT);
		$counts = 0 ;
if ($pageposts):
	foreach ($pageposts as $post):
		setup_postdata($post);
		$counts++;
		add_post_meta($post-&gt;ID, 'incr_number', $counts, true);
		update_post_meta($post-&gt;ID, 'incr_number', $counts);
	endforeach;
endif;
}

add_action ( 'publish_post', 'updateNumbers' );
add_action ( 'deleted_post', 'updateNumbers' );
add_action ( 'edit_post', 'updateNumbers' );</code></pre>









<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.js"></script>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/highlight.min.js"></script>

<script>
// По отдельности работают на Ура, вместе — никак...




// Активация горизонтальной прокрутки
jQuery('.PHP')
  .data('scrollLeft', -1)
  .mousewheel(function(event, delta) {

    var left = jQuery(this).data('scrollLeft');
        left -=  (delta*50);
    this.scrollLeft = left;
    jQuery(this).data('scrollLeft', left);
    return false;
});




// Активация подсветки кода
hljs.initHighlightingOnLoad();
</script>


</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 28.02.2016, 19:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Вариант без jquery.mousewheel
snovapavel,
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/styles/default.min.css">

<style>
pre {
  width: 300px;
  overflow: auto;
}
</style>

</head>
<body>
<pre class="color"><code class="PHP">function updateNumbers() {
	global $wpdb;
	$querystr = "SELECT $wpdb-&gt;posts.* FROM $wpdb-&gt;posts WHERE $wpdb-&gt;posts.post_status = 'publish' AND $wpdb-&gt;posts.post_type = 'post' ";
	$pageposts = $wpdb-&gt;get_results($querystr, OBJECT);
		$counts = 0 ;
if ($pageposts):
	foreach ($pageposts as $post):
		setup_postdata($post);
		$counts++;
		add_post_meta($post-&gt;ID, 'incr_number', $counts, true);
		update_post_meta($post-&gt;ID, 'incr_number', $counts);
	endforeach;
endif;
}

add_action ( 'publish_post', 'updateNumbers' );
add_action ( 'deleted_post', 'updateNumbers' );
add_action ( 'edit_post', 'updateNumbers' );</code></pre>









<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.2.0/highlight.min.js"></script>

<script>

    $(".PHP").on("mousewheel DOMMouseScroll", function(c) {
        c.preventDefault();
        var a = $(this).scrollLeft();
            a +=  -c.originalEvent.wheelDelta || c.originalEvent.detail*40;
        $(this).stop().animate({scrollLeft: a}, 600, "swing")

    })
hljs.initHighlightingOnLoad();
</script>


</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 01.03.2016, 07:44
Аспирант
Отправить личное сообщение для snovapavel Посмотреть профиль Найти все сообщения от snovapavel
 
Регистрация: 08.03.2015
Сообщений: 78

Уважаемый Рони, а нельзя подружить именно мои скрипты? Дело в том, что моя прокрутка, привязана к тегу pre с классом .color, а не к тегу code. И работает она шустро и не тормозит. Помогите пожалуйста подружить мои скрипты...
Ответить с цитированием
  #7 (permalink)  
Старый 01.03.2016, 08:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

snovapavel,
не понял
Ответить с цитированием
  #8 (permalink)  
Старый 01.03.2016, 12:03
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от snovapavel
Я не первый год замужем, и так, само-собой, уже пробовал
Че из меньшинств?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конфликт скриптов kasadas Общие вопросы Javascript 6 08.11.2015 11:41
Конфликт скриптов? borus jQuery 0 19.05.2014 17:11
Конфликт двух скриптов veatone jQuery 2 24.05.2013 21:02
Конфликт скриптов Asttoxa jQuery 6 02.02.2013 14:34
Конфликт скриптов, хотя точно не знаю McLotos Элементы интерфейса 2 06.04.2011 11:34