谷歌浏览器中的 jQuery 表单和鼠标悬停问题
我有一个包含在 iFrame 中的页面(其中嵌入了外部 html 页面),该页面有一个表单,当鼠标悬停在表单提交按钮上时,它会在提交之前计算表单的隐藏值。
我还使用表单中的 smoothzoom 库(http://codecanyon.net/item/smooth-zoom-pan-jquery-image-viewer/full_screen_preview/511142)。
示例计算是根据裁剪视图的左侧偏移计算图像的左侧偏移。
我已经检查了 chrome 和 firefox 中的元素。
鼠标悬停时,所有隐藏字段都会在 Firefox 中更新。
当在 Chrome 中时,只有其中两个更新。 X 和 Y。
这是我正在使用的 jQuery。
var hovered = false;
$(function(){
$('#image').smoothZoom({
width: 270,
height: 270,
zoom_MAX: 600,
animation_SPEED: 0.001,
animation_SMOOTHNESS: 0,
initial_ZOOM: '100',
initial_POSITION: '0 0'
});
$('#headerImageCont').hover(function(){
hovered = true;
},function(){
hovered = false;
});
$(window).bind("mousewheel", function(event, delta){
if (hovered === true){
return false;
}
});
$('#saveButton').mouseover(function(){
$('#x').val(-$('#image').position().left); //needs to be inverted
$('#y').val(-$('#image').position().top); //needs to be inverted
$('#ScaleX').val($('#image').width() / 500);
$('#ScaleY').val($('#image').height() / 423);
$('#Scale').val($('#image').width() / 500 * 100);
$('#target_width').val($('#headerImageCont').width());
$('#target_height').val($('#headerImageCont').height());
$('#actual_width').val($('#image').width());
$('#actual_height').val($('#image').height());
});
});
I have a page containined in an iFrame (With an external html page embedded in it) this page has a form and upon mouseover of the form submit button it calculates the hidden values of the form before submission.
I am in addition using the smoothzoom library in the form (http://codecanyon.net/item/smooth-zoom-pan-jquery-image-viewer/full_screen_preview/511142).
An example calculation is offset left of image calculated against the offset left of crop view.
I have inspected the elements in both chrome and firefox.
On mouseover all of the hidden fields update in firefox.
When as in chrome only two of them update. The X and Y.
Here is the jQuery I am using.
var hovered = false;
$(function(){
$('#image').smoothZoom({
width: 270,
height: 270,
zoom_MAX: 600,
animation_SPEED: 0.001,
animation_SMOOTHNESS: 0,
initial_ZOOM: '100',
initial_POSITION: '0 0'
});
$('#headerImageCont').hover(function(){
hovered = true;
},function(){
hovered = false;
});
$(window).bind("mousewheel", function(event, delta){
if (hovered === true){
return false;
}
});
$('#saveButton').mouseover(function(){
$('#x').val(-$('#image').position().left); //needs to be inverted
$('#y').val(-$('#image').position().top); //needs to be inverted
$('#ScaleX').val($('#image').width() / 500);
$('#ScaleY').val($('#image').height() / 423);
$('#Scale').val($('#image').width() / 500 * 100);
$('#target_width').val($('#headerImageCont').width());
$('#target_height').val($('#headerImageCont').height());
$('#actual_width').val($('#image').width());
$('#actual_height').val($('#image').height());
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
chrome 中的图像在此特定浏览器中不使用宽度和高度。
相反,我将原始宽度和高度乘以 X 和 Y 比例。
这可以通过此代码使用 chromes webkit 值来实现。
http://jsfiddle.net/umZHA/
我希望这对某人有帮助。
谢谢你的帮助,马可
The image in chrome did not use width and height in this particular browser.
Instead I multiply the original width and height by the scale X and Y.
This can be achieve using chromes webkit values via this code..
http://jsfiddle.net/umZHA/
I hope this helps someone.
Thank you for your help Marco