2013-07-11 59 views
1

我使用jQuery UI滑塊(http://jqueryui.com/slider/)。jQuery UI滑塊部件+ fancybox +縮放/縮放

我需要在整個網站上進行縮放/縮放。 對於使用css風格 - 「縮放」在IE + Chrome中進行縮放。

所有在縮放狀態下都能正常工作,問題出現在滑塊中,滑動只是通過點擊他而不是觸發(當他的父縮放時)。

這裏是我的意思的例子 - http://jsfiddle.net/8hbMx/

<style> 
    .slider{ 
     width: 363px;; 
     height: 15px; 
     margin-left: 40px; 
    } 
    #test{ 
     zoom: 50%; 
} 
</style> 
<div id="test"> 
    <div class="slider"></div> 
</div> 
<script> 
    $('.slider').slider({ 
     min: 1, 
     max: 10, 
     width: 50, 
     value: 1 
    }); 
</script> 

這裏是我火了如何縮放:

   $(window).resize(debouncer(function(e) { 
        scale_elements(); 
       })); 

scale_elements() - 我的網頁的規模包裝。

請幫忙,謝謝。

回答

0

只是萬一有人也會面對這個問題,那我是怎麼解決它的。

我無法使用縮放工作,所以我只是關閉滑塊點擊跟蹤,並推動他只使用拖動(拖動它更正確地工作)。

關閉拖動有點複雜,我不知道怎麼做的:

   if (scale < 100) { // detect zooming 
        $('.slider').css('height', '0px'); //setting height of slider to 0, so user can't click on it 
       } 
0

試試這個,在slider構造使用slidechange屬性:

HTML

<div id="zoom-box"> 
    <div id="slider"></div> 
</div> 
<div id="debug"></div> <!-- Remove for production --> 

CSS

#slider { 
    width: 363px; 
    height: 15px; 
    margin-left: 40px; 
} 

的JavaScript

$('#slider').slider({ 
    min: 1, 
    max: 100, 
    width: 50, 
    value: 100, 
    slide: updateZoom, 
    change: updateZoom 
}); 

function updateZoom() { 
    var scale = $('#slider').slider('value'); 
    $('#zoom-box').css('zoom', (scale) + '%'); 
    $('#debug').prepend(scale + '<br/>'); // Remove for production 
} 
+0

謝謝回答,但是那不是爲我工作,我不需要縮放滑塊幻燈片或更改事件。我們的目標是讓滑塊在縮放狀態下正常工作,例如,當您從http://jsfiddle.net/8hbMx/點擊滑塊的右側時,它會滑動錯誤。 – het0

+0

啊對 - 如果你可以假設一個兼容HTML5的瀏覽器(Webkit或IE 10),那麼試試'' - 我不能,原生HTML滑塊控件 – MTCoster

+0

需要交叉瀏覽器,但謝謝回答 – het0