gpt4 book ai didi

javascript - 在 MouseOver 中旋转缩略图并在 Mouseleave 中停止旋转

转载 作者:行者123 更新时间:2023-12-03 04:52:40 26 4
gpt4 key购买 nike

我有一个代码,当要旋转的缩略图数量为 16 并且所有位置都相同时(仅由于缩略图编号而更改文件名),该代码可以完美运行。示例:http://www.urltoimage1.jpg....http://www.urltoimage16.jpg

这是 html:

<img width="189" height="142" src="http: //www.urltoimage8.jpg" class="someclass" id="latest-499" onmouseover="thumbStart('latest-499', 16, 'http: //www.urltoimage');" onmouseout="thumbStop('latest-499','http: //www.urltoimage8.jpg');">

这是 JavaScript:

// JavaScript Document

//rotating thumb functions
var rotateThumbs = new Array();

function changeThumb( index, i, num_thumbs, path)
{
if (rotateThumbs[index])
{
if(i<=num_thumbs){
document.getElementById(index).src = path + i + ".jpg";
i++;
setTimeout("changeThumb('"+ index +"'," + i + ", " + num_thumbs + ", '" + path + "')", 600);
}else{
changeThumb( index, 1, num_thumbs, path);
}
}
}

function thumbStart(index, num_thumbs, path)
{
rotateThumbs[index] = true;
changeThumb( index, 1, num_thumbs, path);

}

function thumbStop(index, srco)
{
rotateThumbs[index] = false;
document.getElementById(index).src = srco;
}

现在,问题是某些文章的缩略图不在同一位置。示例:http://www.urltoimage1.jpg....http://www.urltoimageksks16.jpg

我认为,在存在这种差异的情况下,最好将缩略图的所有 url 复制到图像的类中,以这种方式保留 html:

<img width="189" height="142" src="http: //www.urltoimage8.jpg" class="http: //www.urltoimage1.jpg,http: //www.urltoimage2.jpg,...,http: //www.urltoimageksks16.jpg" id="latest-499" onmouseover="thumbStart" onmouseout="thumbStop('latest-499','http: //www.urltoimage8.jpg');">

现在我已经有了img标签类中的所有url,如何实现缩略图旋转?

谢谢

最佳答案

不要将 url 存储在类属性中,使用 Data Attributes反而。 (或Data Attributes from jQuery)

类似的东西

<img .. data-thumbnail-url="http: //www.urltoimageksks16.jpg" .. />

如果您使用 jQuery(已将其添加到标签中),则可以直接使用

var thumbnailSrc = jQuery('img').data('thumbnail');

如果你没有使用它(因为我在你的代码中根本没有看到任何 jQuery),你必须使用它

var thumbnailSrc = document.getElementById(index).dataset.thumbnail

使用它,您可以替换您的 src 属性。您可能希望将原始 src 存储在数据属性中。

关于旋转本身(不清楚它是否是您问题的一部分,或者您是否想知道是否可以将 url 存储在类属性中),有使用 jquery 的答案,例如 jQuery animate image rotation您只需调整悬停时执行的功能即可。您也可以使用纯CSS Spin or rotate an image on hover

顺便说一句,使用这个

 var rotateThumbs = [];

而不是

 var rotateThumbs = new Array();

参见In JavaScript, why is [ ] preferred over new Array();?

关于javascript - 在 MouseOver 中旋转缩略图并在 Mouseleave 中停止旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42589729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com