jQuery宽度(%)不停止计算在窗口大小
jQuery width (%) doesn't stop calculate on windowResize?
这是我的代码:
http://jsfiddle.net/7cXZj/ var callback = function () {
$('.progress-bar').width($('.progress-bar').parent().width() - 190);
$(".mainpart-background").animate({ width: "80%" }, 800 , function(){
var sidepartposition = $(".progress-bar").width() * 0.1 + $(".sidepart-content").width() * 0.5 ;
$(".sidepart").animate({ "margin-right": - sidepartposition }, 100);
});
};
$(document).ready(callback);
$(window).resize(callback);
var sidepartpositionResize = $(".progress-bar").width() * 0.1 + $(".sidepart-content").width() * 0.5 ;
$(window).resize(function(){
$(".sidepart").css( "margin-right", "sidepartpositionResize" );
});
这就是问题所在:
显示"20%"的span在调整窗口大小时消失。为什么?用Firebug检查它,你会发现jQuery不会停止计算80%,它从80.00213到79.1241再到79.12523……等等......突然1-4秒后,这个奇怪的过程就完成了。然后显示20%的span内容。
请注意:此代码应适用于响应式网站。
我是一个JS初学者。非常感谢你的帮助!
试试下面的代码:http://jsfiddle.net/7cXZj/5/
此代码允许您绑定到resize事件的结束,并且在调整窗口大小期间不会多次执行该函数。
var animate = function(){
console.log('animando');
$(".mainpart-background").css('width', 0);
$(".mainpart-background").animate({
width: "80%"
}, 800, function () {
var sidepartposition = $(".progress-bar").width() * 0.1 + $(".sidepart-content").width() * 0.5;
$(".sidepart").animate({
"margin-right": -sidepartposition
}, 10);
}
);
}
window.resizeEvt;
$(document).ready(function(){
animate();
$(window).resize(function()
{
clearTimeout(window.resizeEvt);
window.resizeEvt = setTimeout(function()
{
animate();
}, 250);
});
});
希望能有所帮助。
相关文章:
- 窗口大小html css
- Chrome应用程序调整窗口大小保持纵横比
- Adobe Air SDK在页面加载时调整窗口大小
- 窗口大小调整事件在ie7中持续触发
- 使用jQuery可以根据窗口大小更改滑块的css高度
- 引导:响应式设计-当窗口大小从980px调整到979px时执行JS
- 基于浏览器窗口大小的条件 JavaScript 执行
- tinyMCE 4.1.9 和小窗口大小冻结
- 根据窗口大小调整 HTML 中 SVG 图像的大小
- 在浏览器窗口大小调整时更改 JS 逻辑
- 提示不同的Javascript/JQuery在窗口大小调整为低于/高于设置宽度时显示
- Javascript滚动并调整窗口大小
- 画布粒子-在“窗口大小”上更新画布大小
- 基于媒体查询的angular js动画无法调整窗口大小
- Javascript-window.open()弹出窗口大小问题
- Jquery通过媒体查询切换窗口大小的错误
- Javascript:保存和恢复浏览器窗口大小
- 如何计算窗口大小调整的大小更改百分比
- BX滑块在浏览器窗口大小减小时不重新计算宽度
- jQuery宽度(%)不停止计算在窗口大小