使用bxslider破坏断点样式调整窗口大小
window resize with bxslider destroyed breaks style
当浏览器窗口缩小到一定大小并对列表应用不同的样式时,我试图删除bxslider元素的样式和javascript,但它正在做奇怪的事情。
从502px以下放大,一切看起来都很好,但是当再次缩小时,滑块消失了,但是新的样式被打破了。现在我只是重新加载页面,如果它低于502px,这只是感觉很糟糕。
下面是我的代码:
编辑:根据要求,我已经将相关的HTML, javascript和CSS添加到JSFiddle: http://jsfiddle.net/tYRJ2/2/。(CSS不完整,但它显示了问题。)
var sliderActive = false;
var slider;
function createSlider() {
slider = jQuery('.bxslider').bxSlider({
adaptiveHeight: false,
swipeThreshold: 40,
controls: true,
auto: true,
pause: 6000,
autoHover: true,
});
return true;
}
//create slider if new page is wide
jQuery(document).ready(function(){
if (window.innerWidth > 502) {
sliderActive = createSlider();
}
});
//create/destroy slider based on width
jQuery(window).resize(function () {
//if wide and no slider, create slider
if (window.innerWidth > 502 && sliderActive == false) {
sliderActive = createSlider();
}
//else if narrow and active slider, destroy slider
else if (window.innerWidth <= 502 && sliderActive == true){
slider.destroySlider();
sliderActive = false;
location.reload(); //fudgey
}
//else if wide and active slider, or narrow and no slider, do nothing
});
任何帮助都非常感谢!
它会出现(我以前见过这个问题,事实上,我即将给出的解决方案来自于我有同样的问题与另一个图像滑块),"破坏"命令并没有完全破坏滑块。在这种情况下,一个"简单"的做法是提前保存一个滑块的备份克隆,然后在破坏后用它来替换你的滑块。
的例子:
//create slider if page is wide
jQuery(document).ready(function(){
sliderClone = jQuery('.bxslider').clone(); // here we create our clone to hold on to original HTML
if (window.innerWidth > 502) {
...... some time later .................
sliderActive = false;
slider.replaceWith(sliderClone.clone()); // here i replace the "tampered" HTML with a clone of the "original" that we cloned off for safe keeping earlier
还有,正如我之前在评论中提到的。BXSlider创建div,它环绕你的UL。因此,如果你想要一个完全不同的样式,当它更小的时候,那么只需将你的UL包装在一个div中,并以ID开始,然后为该div编写直接样式> UL。
的例子:
HTML
<div id="myBXSlider">
<ul class="bxslider">
<li>
......
CSS
// the following first applies to the "slider" when active,
// using bx-slider's class structure
.bx-viewport {
margin: 0;
}
.bx-viewport h2 {
margin-top: 1em;
}
.bx-viewport li {
list-style: none;
padding: 0 1em;
margin: 1%;
background-color: #eee;
-moz-box-shadow: 0 0 10px #bbb;
-webkit-box-shadow: 0 0 10px #bbb;
box-shadow: 0 0 10px #bbb;
border: solid #919396 2px;
}
// now for custom styling for when it's just our div then list
#myBXSlider > ul {
display: block;
margin: 0 auto;
}
#myBXSlider > ul li {
background: #FFA;
color: #F00;
padding: .5em 1em;
}
#myBXSlider > ul h2 {
font-style: italic;
}
// etc... etc ..... and so on
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 将样式表插入iframe
- 跟踪在页面加载时应用内联样式的JavaScript
- 调整窗口大小时,可拖动的对象会出现在容器外部
- ExtJS——在展开/折叠时调整面板高度
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 定义完全独立的样式信息
- Javascript em根据窗口/视口尺寸调整大小,不影响文档样式的text/css
- 如何根据浏览器宽度动态调整 css 样式表
- 对Trustpilot小部件进行了小的样式调整
- 如何在页面调整上刷新jQuery Mobile样式
- 将屏幕大小调整为768px时,导航会更改样式
- 谷歌地图样式API.调整透明度/不透明度
- 使用Intro.js时,如何调整特定步骤的工具提示样式
- Webkit只在调整大小时应用动态加载的css样式(通过ajax)
- 使用bxslider破坏断点样式调整窗口大小
- Jquery工具提示传递html样式/格式化代码时需要调整.html()方法
- 防止在调整大小后改变响应式网页样式(JavaScript)
- 更新高度,宽度和jquery动态文本区域的样式,可拖动和可调整大小