bxslider jquery 插件中的视口高度设置不正确
Viewport height is not setting correctly in bxslider jquery plugin
我正在开发 bx 滑块 jquery 插件。有时视口高度设置不正确。这将在第一次加载滑块时发生。如果我在设置视口后单击下一个或上一个按钮 correctly.I 也检查了 bxSlider.js,它也会 return 错误 value.That 显示只有一张 children(图片),但我使用了 5 张图片。我将宽度设置为 250 px,但它 returns 953px..我使用了以下插件。
https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.min.css
http://bxslider.com/js/jquery.min.js
https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.js https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/vendor/jquery.fitvids.js
https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/vendor/jquery.easing.1.3.js
如果您的页面加载方式发生变化,例如添加额外的插件,bxSlider 将无法完成计算,并且在重新绘制之前不会完成计算。通常通过使 bxSlider 移动 next 或 prev 来完成。我通过强制 bxSlider 在加载时重新计算来修复此行为。这里有两个建议,第一个是被动的和最小的,第二个是激进的和过度的。我建议单独尝试第一个,如果它不起作用,请同时使用它们。
修复 #1。 将以下规则集添加到样式表底部或 <style>
块的最后一行:
.bx-viewport.bx-viewport { min-height: 90vh !important; }
在 class 选择器上加倍可能看起来很奇怪,但它会增加选择器的选择性,!important
和双选择器一样是可选的。这是 修复 #1 的要点:
.bx-viewport { min-height: 90vh; }
修复 #2。 将此 JS 放在结束 </body>
标记之前:
document.documentElement.addEventListener('DOMContentLoaded', function(event) {
var $tgt = $('.bx-viewport')[0];
var tgt = document.querySelector('.bx-viewport');
tgt.style.height = ""
tgt.removeAttribute('height');
tgt.style.removeProperty('height');
$tgt.css('height', '');
$tgt.removeAttr('height');
}, false);
大多数时候使用 Fix #1 就足够了。 修复 #2 过分但它始终有效。
如果您尝试更改 bxslider,您会在下一行看到高度
in this line set height inline so you try to set your slider image height first.
or you can try to change using javascript
我正在开发 bx 滑块 jquery 插件。有时视口高度设置不正确。这将在第一次加载滑块时发生。如果我在设置视口后单击下一个或上一个按钮 correctly.I 也检查了 bxSlider.js,它也会 return 错误 value.That 显示只有一张 children(图片),但我使用了 5 张图片。我将宽度设置为 250 px,但它 returns 953px..我使用了以下插件。
https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.min.css http://bxslider.com/js/jquery.min.js https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/jquery.bxslider.js https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/vendor/jquery.fitvids.js https://cdnjs.cloudflare.com/ajax/libs/bxslider/4.2.5/vendor/jquery.easing.1.3.js
如果您的页面加载方式发生变化,例如添加额外的插件,bxSlider 将无法完成计算,并且在重新绘制之前不会完成计算。通常通过使 bxSlider 移动 next 或 prev 来完成。我通过强制 bxSlider 在加载时重新计算来修复此行为。这里有两个建议,第一个是被动的和最小的,第二个是激进的和过度的。我建议单独尝试第一个,如果它不起作用,请同时使用它们。
修复 #1。 将以下规则集添加到样式表底部或 <style>
块的最后一行:
.bx-viewport.bx-viewport { min-height: 90vh !important; }
在 class 选择器上加倍可能看起来很奇怪,但它会增加选择器的选择性,!important
和双选择器一样是可选的。这是 修复 #1 的要点:
.bx-viewport { min-height: 90vh; }
修复 #2。 将此 JS 放在结束 </body>
标记之前:
document.documentElement.addEventListener('DOMContentLoaded', function(event) {
var $tgt = $('.bx-viewport')[0];
var tgt = document.querySelector('.bx-viewport');
tgt.style.height = ""
tgt.removeAttribute('height');
tgt.style.removeProperty('height');
$tgt.css('height', '');
$tgt.removeAttr('height');
}, false);
大多数时候使用 Fix #1 就足够了。 修复 #2 过分但它始终有效。
如果您尝试更改 bxslider,您会在下一行看到高度
in this line set height inline so you try to set your slider image height first. or you can try to change using javascript