gpt4 book ai didi

javascript - Jquery 函数也应该与其他元素一起工作

转载 作者:太空宇宙 更新时间:2023-11-04 13:15:54 26 4
gpt4 key购买 nike

我试图让这个函数多次工作:

  • 目前仅适用于 h1 标签
  • 如何让它为 <div class="logo"> 工作还有吗?我不想重复这个功能,我需要一种方法让这个功能适用于各种元素。

演示:http://jsfiddle.net/33Ec8/4/

JS:

// Get the divs that should change
function displayThese() {
var $heading = $('h1');
var h1top = $heading.position().top;
var h1bottom = h1top + $heading.height();
var h1left = $heading.position().left;
var h1right = h1top + $heading.width();

var divs = $('li').filter(function () {
var $e = $(this);
var top = $e.position().top;
var bottom = top + $e.height();
var left = $e.position().left;
var right = left + $e.width();

return top > h1bottom || bottom < h1top || left > h1right || right < h1left;
});
return divs;
}

(function fadeInDiv() {
var divs = displayThese();
var elem = divs.eq(Math.floor(Math.random() * divs.length));
if (!elem.is(':visible')) {
elem.prev().remove();
elem.animate({
opacity: 1
}, Math.floor(Math.random() * 1000), fadeInDiv);
} else {

elem.animate({
opacity: (Math.random() * 1)
}, Math.floor(Math.random() * 1000), function () {
window.setTimeout(fadeInDiv);
});
}

})();

$(window).resize(function () {
// Get items that do not change
var divs = $('li').not(displayThese());
divs.css({
opacity: 0.3
});
});

最佳答案

你的问题没有说得很清楚,所以我强烈建议描述代码应该做什么以及它做了什么。

也就是说,这是半盲的尝试来回答我认为你想要的。

您可以将选择器作为参数传递给 displayThese。

function displayThese(selectorString)
{
var $elementsUnderWhichNothingShouldFade = $(selectorString);
...
}

然后当您调用 displayThese 时,您可以传入任何您喜欢的复杂选择器。

var divsToChange = displayThese('h1, div.logo')

当然,您需要添加额外的逻辑来测试图像元素是否位于生成的 $elementsUnderWhichNothingShouldFade(元素列表)的任何之下。

关于javascript - Jquery 函数也应该与其他元素一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24412279/

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