所以我有一组用erb生成的分步指令,在每个步骤中,至少有一个图像的顶部覆盖了一个图像标签(.targed),它突出了步骤指令文本所指的内容。现在的问题是,图像尺寸不利于在移动设备上显示(它们的最大宽度为640px)。我现在已经将图像缩小到最大宽度为300px,但是现在所有的标签位置都不正确。我把它们的x-y位置除以2.13(640/300),但标签仍然不在正确的位置。有些非常接近,但另一些则不然。我想这是因为所有的照片都不是一样宽,但我真的不确定。有什么想法吗?提前谢谢。
jQuery(如何添加标签)
$('span.i_contact').each(function() {
var pos_width = ($(this).data('pos-width')) / 2.1;
var pos_height = ($(this).data('pos-height')) / 2.1;
var xpos = ($(this).data('pos-x')) / 2.1;
var ypos = ($(this).data('pos-y')) / 2.1;
var taggedNode = $('<div class="tagged" />')
taggedNode.css({
"border":"5px solid orange",
"width":pos_width,
"height":pos_height,
"left":xpos,
"top":ypos
});
var n = $(this).data('index')
$('.i_tagmap' + n).append(taggedNode)
console.log(taggedNode.position())
});
$("span.o_contact").each(function() {
var pos_width = ($(this).data('pos-width')) / 2.1;
var pos_height = ($(this).data('pos-height')) / 2.1;
var xpos = ($(this).data('pos-x')) / 2.1;
var ypos = ($(this).data('pos-y')) / 2.1;
var taggedNode = $('<div class="tagged" />')
taggedNode.css({
"border":"5px solid green",
"width":pos_width,
"height":pos_height,
"left":xpos,
"top":ypos
});
var n = $(this).data('index')
$('.o_tagmap' + n).append(taggedNode)
});
ERB(步骤是如何生成的)
<% n = steps.index(step) %>
<section id="step<%= n+1 %>" style="padding-top: 60px;">
<h2 style="margin-left:20px;"> Step <%= n+1 %></h2>
<div class="stepcontainer">
<div class="steptext">
<% if step.priority == 1 %>
<%= "Plug the #{step.i_connection.cord_type.name} end of the cable into the #{step.i_product.full_name}. Then plug the #{step.o_connection.cord_type.name} end into the #{step.o_product.full_name}." %>
<% elsif step.priority == 2 %>
<%= "Plug the #{step.i_connection.cord_type.name} end of the cable into the #{step.i_product.full_name}. Then plug the #{step.o_connection.cord_type.name} end into the #{step.o_product.full_name}." %>
<% elsif step.priority == 3 %>
<%= "Plug the #{step.o_connection.product.full_name } #{step.o_connection.cord_type.name} Cable into the wall." %>
<% elsif step.priority == 4 %>
<%= "Plug the #{step.i_connection.cord_type.name} end of the cable into the #{step.i_connection.product.full_name}. Then plug the #{step.o_connection.cord_type.name} end into the #{step.o_connection.product.full_name}." %>
<% elsif step.priority == 5 %>
<%= "Plug #{step.o_connection.product.full_name}" %>
<% elsif step.priority == 6 %>
<%= "Touch the #{step.o_connection.button.name} Button on the #{step.o_connection.product.full_name}" %>
<% end %>
</div>
<div class="modalbutton">
<%= render(step.flags.new) %>
</div>
<div class="productimg">
<span class="o_contact o_contact<%= n %>" data-pos-x="<%= step.o_connection.pos_x %>" data-pos-y="<%= step.o_connection.pos_y %>" data-pos-width="<%= step.o_connection.pos_width %>" data-pos-height="<%= step.o_connection.pos_height %>" id="spanid<%= n %>" data-index="<%= n %>"> </span>
<% if step.input_contact.present? %>
<span class="i_contact i_contact<%= n %>" data-pos-x="<%= step.i_connection.pos_x %>" data-pos-y="<%= step.i_connection.pos_y %>" data-pos-width="<%= step.i_connection.pos_width %>" data-pos-height="<%= step.i_connection.pos_height %>" ="spanid<%= n %>" data-index="<%= n %>"></span>
<div id="image_panel<%= n %>" style="float:left; width:300px; position:relative;">
<%= link_to image_tag(step.i_connection.image.image.url(:medium)), "#{step.i_connection.image.image.url(:large)}", class: "fancybox" %>
<div class="i_tagmap<%= n %>"></div>
</div>
</div>
<div class="cableimg">
<% if step.i_connection.cord_type.present? %>
<%= image_tag(step.i_connection.cord_type.image.url(:thumb), :class => "orange") %>
<% end %>
<% end %>
<% if step.o_connection.cord_type.present? %>
<%= image_tag(step.o_connection.cord_type.image.url(:thumb), :class => "green") %>
<% end %>
</div>
<% if step.o_connection.button.present? %>
<div class="productimg">
<div id="image_panel<%= n %>" style="float:left; width:300px; position:relative;">
<%= link_to image_tag(step.o_connection.image.image.url(:medium)), "#{step.o_connection.image.image.url(:large)}", class: "fancybox" %>
<div class="o_tagmap<%= n %>"></div>
</div>
</div>
<% else %>
<div class="productimg">
<div id="image_panel<%= n %>" style="float:left; width:300px; position:relative;">
<%= link_to image_tag(step.o_connection.image.image.url(:medium)), "#{step.o_connection.image.image.url(:large)}", class: "fancybox" %>
<div class="o_tagmap<%= n %>"></div>
</div>
</div>
<% end %>
</div>
</section>
我没有检查您的代码,但一个常见的错误是假设y轴从底部开始。它从顶部开始。
如:x,y
0,0 1,0 2,0
0,11,12,1
0,2、1,2、2,2