我是一名摄影师而不是代码专家,但我已经尝试了一段时间来完成这项工作——它是一个动画图像,可以实现 GIF 的效果,没有 256 色的限制和随之而来的像素化/噪声. 它通过翻译固定 div 内的背景图像来工作。Javascript 在下面,它与我的一张图片一起工作的方式可以在这里找到http://jsfiddle.net/MXWgZ/
HTML:
<div id='image_box' onmouseover='start_rotate();' onmouseout='stop_rotate();'></div>
CSS
#image_box {
margin-left:20px;
width:533px;
height:800px;
background-image:url('http://www.studioprivate.co.uk/droguslong2.jpg');
background-repeat:no-repeat;
background-position:0px;}
JAVASCRIPT:
var curr_pos = 0; //current background-position
var timer_id = 0;
function rotate_img() {
if (curr_pos == -13858) curr_pos = 0; //if 360 degree done
else curr_pos = curr_pos - 533;
$("#image_box").css("background-position", curr_pos + "px"); //move bacground to the left by 533px
if (curr_pos == -13858) curr_pos = 0;}
function start_rotate() {
timer_id = setInterval(rotate_img, 80);}
function stop_rotate() {
clearInterval(timer_id);}
现在,它工作正常,除了当它到达结尾时,它似乎会在一瞬间显示白色背景,而不是直接跳到开头。有没有办法摆脱这个?我觉得它扰乱了流程。
另一个问题是 - 我可以添加另一个事件 onclick 以便在单击图像时,背景图像被另一个替换并像上面一样动画?那会在我的代码中去哪里?
谢谢!