Jquery — Направляющие Оси Над Изображением

  • Автор темы Svetlana195
  • Обновлено
  • 22, Oct 2024
  • #1

Я пытаюсь реализовать это в WordPress: https://stackoverflow.com/questions/11461913/making-axis-guide-lines-over-an-image-that-follow-the-mouse-pointer

Я создал этот скрипт в папке своей темы (/js/guidelines.js):

 
 
 
 <div id="imageholder">

<div id="horizontal"></div>

<div id="vertical"></div>

<img src="https://www.elesa.com/siteassets/low/ELESA/DWG/TechData_web/AV_ACC_DIAGRAM_EN.jpg">
</div>
 

Добавил это в function.php:

#imageholder div{ background-color:black;position:absolute; } #imageholder{;position:relative;display:inline-block;overflow:hidden; } #horizontal{width:100%;height:1px;} #vertical{width:1px;height:100%;}

И добавил CSS к дополнительному CSS в настройщике темы:

add_action( 'wp_enqueue_scripts', 'add_guidelines' ); function add_guidelines() { wp_enqueue_script( 'guidelines', // name your script so that you can attach other scripts and de-register, etc. get_template_directory_uri() . '/js/guidelines.js', // this is the location of your script file array('jquery') // this array lists the scripts upon which your script depends ); }

Но когда я пытаюсь реализовать эти рекомендации на графике:

jQuery('#imageholder img').on('mousemove', null, [jQuery('#horizontal'), jQuery('#vertical')],function(e){ e.data[1].css('left', e.offsetX==undefined?e.originalEvent.layerX:e.offsetX); e.data[0].css('top', e.offsetY==undefined?e.originalEvent.layerY:e.offsetY); }); jQuery('#imageholder').on('mouseenter', null, [jQuery('#horizontal'), jQuery('#vertical')], function(e){ e.data[0].show(); e.data[1].show(); }).on('mouseleave', null, [jQuery('#horizontal'), jQuery('#vertical')], function(e){ e.data[0].hide(); e.data[1].hide(); });

... направляющие не являются динамическими и остаются в верхнем левом углу: jquery — направляющие оси над изображением

Может быть, кто-нибудь сможет мне помочь с этой проблемой.

Я не знаю, что здесь не так.

Svetlana195


Рег
13 Feb, 2011

Тем
95

Постов
191

Баллов
706
  • 25, Oct 2024
  • #2

Мне просто нужно было обернуть функцию готовности документа:

 jQuery(document).ready(function( $ ) {

$('#imageholder img').on('mousemove', null, [jQuery('#horizontal'), jQuery('#vertical')],function(e){

e.data[1].css('left', e.offsetX==undefined?e.originalEvent.layerX:e.offsetX);

e.data[0].css('top', e.offsetY==undefined?e.originalEvent.layerY:e.offsetY);

});

$('#imageholder').on('mouseenter', null, [jQuery('#horizontal'), jQuery('#vertical')], function(e){

e.data[0].show();

e.data[1].show();

}).on('mouseleave', null, [jQuery('#horizontal'), jQuery('#vertical')], function(e){

e.data[0].hide();

e.data[1].hide();

});

});
 
 

Fuckingskater


Рег
05 Oct, 2014

Тем
75

Постов
196

Баллов
581
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно