我有一系列需要循环的照片(实际上是 3 系列),jQuery 循环插件非常适合我。
我的问题是我还想在页面加载时将它们(依次旋转)旋转几度,以实现“分散”的外观。jQuery Rotate 也很好地做到了这一点……我的问题是我不能在同一页面上同时进行旋转和循环。
看起来解决方案将涉及在循环代码本身内旋转图像,但这超出了我的有限能力(至少在可用的时间内)。有没有其他人试过这个?有任何指示吗?
如果一切都失败了,我可以在 photoshop 中预先旋转图像,但这并不理想——js 旋转意味着网站所有者可以轻松地刷新照片,只需将新照片转储到目录中即可。Photoshop otoh 意味着旋转每一个 - 并将它们从 jpg 转换为支持透明度的格式(或者更糟糕的是,在正确的位置复制适当的背景颜色等)。
我正在使用标准 jquery.cycle ... html 预加载第 1 3 个图像,如下所示:
<div id="slideshow" class="pics">
<img class="rotate" src="images/image1.jpg" width="100" height="100" />
<img class="rotate" src="images/image2.jpg" width="100" height="100" />
<img class="rotate" src="images/image3.jpg" width="100" height="100" />
</div>
我有通常的 js 来启动循环:
$(document).ready(function() {
var stack = [];
var imagesPath = '../images/image';
if(window.location.href.indexOf('\/html\/') == -1)
imagesPath = 'images/image';
for (var i = 0; i < 8; i++) {
var img = new Image(100,100);
img.src = imagesPath + i + '.jpg';
$(img).bind('load', function() {
stack.push(this);
});
}
// start slideshow
$('#slideshow').cycle({
timeout: 600,
before: onBefore ,
speed: 2000
});
// add images to slideshow
function onBefore(curr, next, opts) {
if (opts.addSlide) // <-- important!
while(stack.length)
opts.addSlide(stack.pop());
};
});
使用 jQuery.rotate 旋转这些图像中的第一个的 js 是:
$('.rotate')[0].rotateLeft(5);
如果我禁用骑车,上述方法有效,但骑车时没有任何反应。根据以下内容删除数组引用会旋转可见图像,将其从幻灯片中删除,并将其保留在页面上。
$('.rotate').rotateLeft(5);
也许理想的做法是旋转包含的 div,但 jquery.rotate 使用画布,因此仅适用于图像。让我知道我是否可以提供更多信息。并感谢您的关注!