Javascript jQuery-仅针对一个句柄可调整大小的纵横比
我只想从一个句柄保护纵横比。我试图用这段代码运行它,但它对我没有帮助。你有什么解决办法吗Javascript jQuery-仅针对一个句柄可调整大小的纵横比,javascript,jquery,jquery-ui,resize,jquery-ui-resizable,Javascript,Jquery,Jquery Ui,Resize,Jquery Ui Resizable,我只想从一个句柄保护纵横比。我试图用这段代码运行它,但它对我没有帮助。你有什么解决办法吗 $( "#resizable").resizable({ handles: 'se,e,w', aspectRatio: true, start: function(e,ui) { if (jQuery(e.originalTarget).hasClass("ui-resizable-se")) { aspectRatio: false; }
$( "#resizable").resizable({
handles: 'se,e,w',
aspectRatio: true,
start: function(e,ui) {
if (jQuery(e.originalTarget).hasClass("ui-resizable-se")) {
aspectRatio: false;
}
}
});
特别感谢所有的解决方案
编辑:问题解决了。您可以在这里看到解决方案:我认为您应该提供纵横比,而不是
true
aspectRatio: 16 / 9
或
提及
或
我认为您应该提供纵横比,而不是
true
aspectRatio: 16 / 9
或
提及
或
关于这个bug,有很多问题没有答案 以下是适合您的解决方案:)
var changedRatio=“DK”//DK->不要保留
var nowResizing=“否”;
$(函数(){
$(“#可调整大小”)。可调整大小({
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
$(document).on('mouseenter','.ui-resizeable-e',function(){
if(changedRatio!=“DK”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
dontKeep(targetDiv);
}
}
});
$(document).on('mouseenter','.ui可调整大小se',function(){
if(changedRatio!=“K”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
保留(targetDiv);
}
}
});
$(document).on('mouseenter','.ui-resizeable-s',function(){
if(changedRatio!=“DK”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
dontKeep(targetDiv);
}
}
});
});
函数dontKeep(val){
$(“#”+val).可调整大小(“销毁”);
$(“#”+val)。可调整大小({
方面:错误,
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
changedRatio=“DK”;
}
功能保持(val){
$(“#”+val).可调整大小(“销毁”);
$(“#”+val)。可调整大小({
是的,
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
changedRatio=“K”;
}
可调整大小
关于这个bug,有许多问题没有答案
以下是适合您的解决方案:)
var changedRatio=“DK”//DK->不要保留
var nowResizing=“否”;
$(函数(){
$(“#可调整大小”)。可调整大小({
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
$(document).on('mouseenter','.ui-resizeable-e',function(){
if(changedRatio!=“DK”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
dontKeep(targetDiv);
}
}
});
$(document).on('mouseenter','.ui可调整大小se',function(){
if(changedRatio!=“K”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
保留(targetDiv);
}
}
});
$(document).on('mouseenter','.ui-resizeable-s',function(){
if(changedRatio!=“DK”){
如果(正在调整大小!=“是”){
var targetDiv=$(this.parent().attr(“id”);
dontKeep(targetDiv);
}
}
});
});
函数dontKeep(val){
$(“#”+val).可调整大小(“销毁”);
$(“#”+val)。可调整大小({
方面:错误,
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
changedRatio=“DK”;
}
功能保持(val){
$(“#”+val).可调整大小(“销毁”);
$(“#”+val)。可调整大小({
是的,
开始:功能(事件、用户界面){
nowResizing=“是”;
},
停止:功能(事件、用户界面){
nowResizing=“否”;
}
});
changedRatio=“K”;
}
可调整大小
一个对我有效的简单解决方案
var is_se = ($(this).data('uiResizable').axis == "se");
$(this).resizable( "option", "aspectRatio", is_se ).data('uiResizable')._aspectRatio = is_se;
一个对我有效的简单解决方案
var is_se = ($(this).data('uiResizable').axis == "se");
$(this).resizable( "option", "aspectRatio", is_se ).data('uiResizable')._aspectRatio = is_se;
一个对我有用的微小变化,可能是因为jQuery的更新版本。四个角的手柄将保持纵横比,而侧面的手柄则不会
$elements.resizable({
handles: "all",
start: function(event, ui) {
var handle = $(this).data('ui-resizable').axis;
// We should maintain the aspect ratio for corners, not for sides
var maintain_aspect_ratio = (["n", "e", "s", "w"].indexOf(handle) == -1);
$(this).resizable( "option", "aspectRatio", maintain_aspect_ratio )
.data('ui-resizable')
._aspectRatio = maintain_aspect_ratio;
},
...
一个对我有用的微小变化,可能是因为jQuery的更新版本。四个角的手柄将保持纵横比,而侧面的手柄则不会
$elements.resizable({
handles: "all",
start: function(event, ui) {
var handle = $(this).data('ui-resizable').axis;
// We should maintain the aspect ratio for corners, not for sides
var maintain_aspect_ratio = (["n", "e", "s", "w"].indexOf(handle) == -1);
$(this).resizable( "option", "aspectRatio", maintain_aspect_ratio )
.data('ui-resizable')
._aspectRatio = maintain_aspect_ratio;
},
...
不,aspectRatio有两个选项,可以使用数字或布尔值。事实上可以。他们的跟踪系统在初始化后更改纵横比方面仍然存在许多漏洞。尝试一些创造性的方法在初始化时设置纵横比,或者如果您想动态更改纵横比,您可以销毁并重新初始化它。我无法创建为我运行的东西,这就是为什么我请其他人帮助我的原因。@Adam:我可以重新编辑我的答案以获得更简单的解决方案。我们在这里指导您,澄清您的问题,并提供代码示例,而不是免费编写整个场景。如果你想让别人为你编码,你可以访问elance.com。无论如何,我不想让任何人为我编码整个场景。我只是想看到更清晰的答案,帮助我解决问题。不,aspectRatio有两个选项,你可以使用数字或布尔值。是的,事实上你可以。他们的跟踪系统在初始化后更改纵横比方面仍然存在许多漏洞。尝试一些创造性的方法在初始化时设置纵横比,或者如果您想动态更改纵横比,您可以销毁并重新初始化它。我无法创建为我运行的东西,这就是为什么我请其他人帮助我的原因。@Adam:我可以重新编辑我的答案以获得更简单的解决方案。我们是