Jquery 全景缩放持续时间
Jquery panzoom duration
有没有人能够让 panzoom 的持续时间发挥作用?
https://github.com/timmywil/jquery.panzoom
我进入源代码并将持续时间从 200 增加到 1200,但在调用缩放时没有看到变化。
$panzoom.panzoom("zoom", 2.5);
已更新
var $section = $('section').first();
$panzoom = $section.find('.panzoom').panzoom({
contain: false,
minScale: 1,
maxScale: 3,
contain: true,
duration:1200
}).panzoom('zoom', true);
$(elm).on('click' function(){
$panzoom.panzoom("zoom", true);
});
为什么不直接用 option() 方法改变它呢?来自panzoom docs:
// One at a time
// Sets the scale increment option
$elem.panzoom("option", "duration", 1200);
// Several options at once
$elem.panzoom("option", {
increment: 0.4,
minScale: 0.1,
maxScale: 2,
duration: 500,
$reset: $("a.reset-panzoom, button.reset-panzoom")
});
您不必更改源中的任何默认值即可设置不同的持续时间。
编辑:
您需要给 "zoom" 一个布尔属性 true 来设置您自己的选项持续时间,如文档中所述:
"If the method is passed a boolean, true will indicate to perform a zoom-out based on the increment specified in options. If false (or omitted), a zoom-in will be performed."
下面是一个工作版本,我在选项 (2500) 中设置了自定义持续时间并使用了 panzoom("zoom", true):
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://timmywil.github.io/jquery.panzoom/dist/jquery.panzoom.js"></script>
</head>
<body>
<section id="contain">
<h1>Containment within the parent element</h1>
<div class="panzoom-parent" style="overflow: hidden; position: relative;">
<img class="panzoom" src="http://blog.millermedeiros.com/wp-content/uploads/2010/04/awesome_tiger.svg" width="900" height="900" style="transform: matrix(0.9, 0, 0, 0.9, -46, 44); backface-visibility: hidden; transform-origin: 50% 50% 0px; cursor: move; transition: transform 200ms ease-in-out;">
</div>
<div class="buttons">
<button class="zoom-in">Zoom In</button>
<button class="zoom-out">Zoom Out</button>
<input type="range" class="zoom-range" step="0.05" min="0.4" max="0.9">
<button class="reset">Reset</button>
</div>
<script>
(function() {
var $section = $('#contain');
var $panzoom = $section.find('.panzoom').panzoom({
$zoomIn: $section.find(".zoom-in"),
$zoomOut: $section.find(".zoom-out"),
$zoomRange: $section.find(".zoom-range"),
$reset: $section.find(".reset"),
startTransform: 'scale(0.9)',
maxScale: 0.9,
increment: 0.1,
contain: true,
duration:2500
}).panzoom('zoom', true);
})();
</script>
</section>
</body>
</html>
有没有人能够让 panzoom 的持续时间发挥作用? https://github.com/timmywil/jquery.panzoom
我进入源代码并将持续时间从 200 增加到 1200,但在调用缩放时没有看到变化。
$panzoom.panzoom("zoom", 2.5);
已更新
var $section = $('section').first();
$panzoom = $section.find('.panzoom').panzoom({
contain: false,
minScale: 1,
maxScale: 3,
contain: true,
duration:1200
}).panzoom('zoom', true);
$(elm).on('click' function(){
$panzoom.panzoom("zoom", true);
});
为什么不直接用 option() 方法改变它呢?来自panzoom docs:
// One at a time
// Sets the scale increment option
$elem.panzoom("option", "duration", 1200);
// Several options at once
$elem.panzoom("option", {
increment: 0.4,
minScale: 0.1,
maxScale: 2,
duration: 500,
$reset: $("a.reset-panzoom, button.reset-panzoom")
});
您不必更改源中的任何默认值即可设置不同的持续时间。
编辑:
您需要给 "zoom" 一个布尔属性 true 来设置您自己的选项持续时间,如文档中所述:
"If the method is passed a boolean, true will indicate to perform a zoom-out based on the increment specified in options. If false (or omitted), a zoom-in will be performed."
下面是一个工作版本,我在选项 (2500) 中设置了自定义持续时间并使用了 panzoom("zoom", true):
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://timmywil.github.io/jquery.panzoom/dist/jquery.panzoom.js"></script>
</head>
<body>
<section id="contain">
<h1>Containment within the parent element</h1>
<div class="panzoom-parent" style="overflow: hidden; position: relative;">
<img class="panzoom" src="http://blog.millermedeiros.com/wp-content/uploads/2010/04/awesome_tiger.svg" width="900" height="900" style="transform: matrix(0.9, 0, 0, 0.9, -46, 44); backface-visibility: hidden; transform-origin: 50% 50% 0px; cursor: move; transition: transform 200ms ease-in-out;">
</div>
<div class="buttons">
<button class="zoom-in">Zoom In</button>
<button class="zoom-out">Zoom Out</button>
<input type="range" class="zoom-range" step="0.05" min="0.4" max="0.9">
<button class="reset">Reset</button>
</div>
<script>
(function() {
var $section = $('#contain');
var $panzoom = $section.find('.panzoom').panzoom({
$zoomIn: $section.find(".zoom-in"),
$zoomOut: $section.find(".zoom-out"),
$zoomRange: $section.find(".zoom-range"),
$reset: $section.find(".reset"),
startTransform: 'scale(0.9)',
maxScale: 0.9,
increment: 0.1,
contain: true,
duration:2500
}).panzoom('zoom', true);
})();
</script>
</section>
</body>
</html>