jQuery 调整大小会导致丑陋 "jump" 被解雇
jQuery resize causes ugly "jump" when fired
我使用 ba-resize jQuery plugin 根据边栏菜单 ( '#menu' ) 的动态大小动态调整网站内容 div ( '#page-content' )。该插件允许将调整大小事件处理程序绑定到 divs.
这主要是有效的,但是当两个 div 调整它们的大小时,它会导致明显的视觉跳跃。查看简短的截屏视频:http://recordit.co/BjIYaS36oW(无声音)
有时跳转会变成无法完全加载菜单。
如何 fix/eliminate 调整大小时的这种跳跃性?
我的jQuery:
// Adjusting content width to allow for responsive size with changing menu width
$(function(){
$('#menu').resize(function(){
$('#page-content').css({'width':(($(window).width()))-'#menu'});
$("#page-content").css('marginLeft','');
$("#page-content").css('marginRight','');
});
});
$(document).ready(function(){
var callback = function () {
var h = $(window).width();
var k = $('#menu').width();
$('#page-content').width(h-k);
};
$(document).ready(callback);
$(window).resize(callback);
});
我怀疑我这里有一些丑陋的脚本 — 我不是 jQuery 向导 — 我很欣赏任何想法。如果有帮助(在评论中),我可以将 URL 分享到暂存网站。
对于这项任务,人们通常会使用基于事件的方法。
首先,您可以使用 jQuery.animate 功能,为 css 调整大小添加移动持续时间。 'jump' 是一次尝试调整大小的尝试,因此快速移动并不奇怪。
然后要在两个事件之间交替,一种方法是使用 jQuery.one 函数。
指定两个单独的事件:一个用于更改菜单的宽度属性 div,第二个用于删除这些。
jQuery(".menu_toggle").one("click", handler1);
function handler1() {
//Expand Menu
jQuery(".menu_toggle").one("click", handler2);
}
function handler2() {
//Collapse Menu
jQuery(".menu_toggle").one("click", handler1);
}
我使用 ba-resize jQuery plugin 根据边栏菜单 ( '#menu' ) 的动态大小动态调整网站内容 div ( '#page-content' )。该插件允许将调整大小事件处理程序绑定到 divs.
这主要是有效的,但是当两个 div 调整它们的大小时,它会导致明显的视觉跳跃。查看简短的截屏视频:http://recordit.co/BjIYaS36oW(无声音)
有时跳转会变成无法完全加载菜单。
如何 fix/eliminate 调整大小时的这种跳跃性?
我的jQuery:
// Adjusting content width to allow for responsive size with changing menu width
$(function(){
$('#menu').resize(function(){
$('#page-content').css({'width':(($(window).width()))-'#menu'});
$("#page-content").css('marginLeft','');
$("#page-content").css('marginRight','');
});
});
$(document).ready(function(){
var callback = function () {
var h = $(window).width();
var k = $('#menu').width();
$('#page-content').width(h-k);
};
$(document).ready(callback);
$(window).resize(callback);
});
我怀疑我这里有一些丑陋的脚本 — 我不是 jQuery 向导 — 我很欣赏任何想法。如果有帮助(在评论中),我可以将 URL 分享到暂存网站。
对于这项任务,人们通常会使用基于事件的方法。
首先,您可以使用 jQuery.animate 功能,为 css 调整大小添加移动持续时间。 'jump' 是一次尝试调整大小的尝试,因此快速移动并不奇怪。
然后要在两个事件之间交替,一种方法是使用 jQuery.one 函数。 指定两个单独的事件:一个用于更改菜单的宽度属性 div,第二个用于删除这些。
jQuery(".menu_toggle").one("click", handler1);
function handler1() {
//Expand Menu
jQuery(".menu_toggle").one("click", handler2);
}
function handler2() {
//Collapse Menu
jQuery(".menu_toggle").one("click", handler1);
}