0
簡而言之,我只想在瀏覽器窗口小於特定大小時才運行腳本(在這種情況下爲Flexslider)。基於瀏覽器寬度來終止或執行JavaScript
即
不到 480像素寬(或者在啓動或調整大小) - 運行Flexslider
超過 480像素寬(或者在啓動或調整大小) - 殺死Flexslider和顯示列表項目作爲'靜態'塊/頁面元素
目前,我有以下代碼,它通過使用基於瀏覽器寬度的addClass和removeClass工作(在某種程度上)。但是它需要刷新瀏覽器才能在相關的地方殺死或執行腳本。正如你可能猜到的那樣,我不是JS專家,但是我很想聽聽你的想法。
HTML:
<div id="foo">
<ul class="slides">
<li><img src="images/image1.jpg" width="320" height="320" alt=""></li>
<li><img src="images/image2.jpg" width="320" height="320" alt=""></li>
<li><img src="images/image3.jpg" width="320" height="320" alt=""></li>
</ul>
</div>
JS:
$(document).ready(function() { var pageWidth = $(window).width(); if (pageWidth <= 480) { $("#foo").addClass('flexslider'); $('.flexslider').flexslider({ animation: "slide", directionNav: true }); } $(window).resize(function() { if ($(window).width() > 480) { $("#foo").removeClass('flexslider'); } }); });
JS - 修訂版1
$(window).resize(function(){
var windowWidth = $(window).width();
if (windowWidth <= 480) {
$("#foo").addClass('flexslider');
$('.flexslider').flexslider({
animation: "slide",
directionNav: true
});
}
$(window).resize(function() {
if ($(window).width() > 480) {
$("#foo").removeClass('flexslider');
}
});
});
個
JS - 第2次修訂
$(window).resize(function() {
if ($(window).width() >= 480) {
$("#foo").removeClass('flexslider');
}
if ($(window).width() < 480) {
$("#foo").addClass('flexslider');
$('#foo').flexslider({animation: "slide"});
}
});
我會將代碼移動到一個已定義的函數中,並在頁面加載或調整大小時調用該函數,否則它將無法在頁面加載上運行。 – 2012-08-05 18:31:18
謝謝,夥計們。那麼我有點中途。如果我從一個大的(960像素寬)窗口調整到480像素的大小,它確實會觸發Flexslider,但是當我嘗試將寬度增加到960像素時,Flexslider仍會保留。添加了我上面的修訂... – barmcake 2012-08-05 21:13:06
嘗試修改我的代碼。讓我知道如何工作 – 2012-08-06 14:38:51