28.02.2016, 12:21
|
Аспирант
|
|
Регистрация: 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->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ";
$pageposts = $wpdb->get_results($querystr, OBJECT);
$counts = 0 ;
if ($pageposts):
foreach ($pageposts as $post):
setup_postdata($post);
$counts++;
add_post_meta($post->ID, 'incr_number', $counts, true);
update_post_meta($post->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>
|
|
28.02.2016, 12:44
|
Аспирант
|
|
Регистрация: 22.08.2015
Сообщений: 71
|
|
snovapavel,
А если поменять местами инициализацию Подсветки и скроллинга ?
|
|
28.02.2016, 18:00
|
Аспирант
|
|
Регистрация: 08.03.2015
Сообщений: 78
|
|
Я не первый год замужем, и так, само-собой, уже пробовал ) Сейчас придёт товарищ «Рони» и покажет где я был неправ. Просто нужно подождать немного.
|
|
28.02.2016, 18:21
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
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->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ";
$pageposts = $wpdb->get_results($querystr, OBJECT);
$counts = 0 ;
if ($pageposts):
foreach ($pageposts as $post):
setup_postdata($post);
$counts++;
add_post_meta($post->ID, 'incr_number', $counts, true);
update_post_meta($post->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>
|
|
28.02.2016, 19:15
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Вариант без 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->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ";
$pageposts = $wpdb->get_results($querystr, OBJECT);
$counts = 0 ;
if ($pageposts):
foreach ($pageposts as $post):
setup_postdata($post);
$counts++;
add_post_meta($post->ID, 'incr_number', $counts, true);
update_post_meta($post->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>
|
|
01.03.2016, 07:44
|
Аспирант
|
|
Регистрация: 08.03.2015
Сообщений: 78
|
|
Уважаемый Рони, а нельзя подружить именно мои скрипты? Дело в том, что моя прокрутка, привязана к тегу pre с классом .color, а не к тегу code. И работает она шустро и не тормозит. Помогите пожалуйста подружить мои скрипты...
|
|
01.03.2016, 08:23
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
snovapavel,
не понял
|
|
01.03.2016, 12:03
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
Сообщение от snovapavel
|
Я не первый год замужем, и так, само-собой, уже пробовал
|
Че из меньшинств?
|
|
|
|