gpt4 book ai didi

javascript - 如何在不使用mousemove动画万花筒的情况下随机化JS中的backgroundPosition

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

试图为网页制作万花筒动画...但只能找到这个示例,但它使用鼠标移动。如何修改以使其随机化背景而不是鼠标移动?

HTML

<div class="kal_main">
<div class="kal_cont">
<div class="ks s1"><div class="ksc"></div></div>
<div class="ks s2"><div class="ksc"></div></div>
<div class="ks s3"><div class="ksc"></div></div>
<div class="ks s4"><div class="ksc"></div></div>
<div class="ks s5"><div class="ksc"></div></div>
<div class="ks s6"><div class="ksc"></div></div>
<div class="ks s7"><div class="ksc"></div></div>
<div class="ks s8"><div class="ksc"></div></div>
<div class="ks s9"><div class="ksc"></div></div>
<div class="ks s10"><div class="ksc"></div></div>
<div class="ks s11"><div class="ksc"></div></div>
<div class="ks s12"><div class="ksc"></div></div>
</div>
</div>

JS

$(document).ready(function() {
$(".kal_cont").each(function(i){
$(this).mousemove(function(e) {
$(this).find(".ksc").each(function(i){
$(this).css({backgroundPosition: e.pageX+"px "+e.pageY+"px"});
});
});
});

});

CSS

body {
font-family: Verdana, Helvetica, Arial, sans-serif;
margin: 0;
padding: 0;
}

.example {
width: 920px;
height: 510px;
border: 0px #000 solid;
margin: 0px auto;
padding: 0px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
}

/* common kaleidoscope styles */
.kal_main {
background-image: url(../patterns/Animation-Background.png);
overflow: hidden;
width: 920px;
height: 510px;
margin: auto;
}

.kal_cont {
width: 140%;
height: 140%;
left: -20%;
top: -20%;
position: relative;
margin: auto;
}

.kal_cont .ks {
-webkit-transform-origin: right top;
-moz-transform-origin: right top;
-o-transform-origin: right top;
transform-origin: right top;
width: 50%;
height: 50%;
position: absolute;
top: 50%;
left: 0;
z-index: 10;
overflow: hidden;
}

.kal_cont .ksc {
height: 100%;
width: 100%;
-webkit-transform: rotate(30deg);
-moz-transform: rotate(30deg);
-o-transform: rotate(30deg);
transform: rotate(30deg);
position: relative;
-webkit-transform-origin: left top;
-moz-transform-origin: left top;
-o-transform-origin: left top;
transform-origin: left top;
left: 100%;
top: 0;
background-image: url(../patterns/Brain-no-stem.png);
}

无法发布其余 CSS 代码。

最佳答案

不看例子很难回答,但很可能是这样的。文档准备就绪后,将调用 animateKS 函数。此函数循环遍历每个“.ksc”并设置新的背景位置,然后设置超时以从现在开始 200-500 毫秒执行相同的操作(您可以通过使用传递给 getRandom 的数字来调整这段时间.

注意:正如编写的那样,此代码将不起作用。设置背景位置的代码仍然是基于 e.pageX 和 e.pageY 设置的,这是您发布的示例中鼠标的位置。您将需要使用不同的值来更改背景位置。根据您尝试执行的操作,这可能就像将调用结果传递给 getRandom 并传递适当范围一样简单。

function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}

var bgPos = 0;
function animateKS() {
$(".ksc").each(function(i){
$(this).css({
backgroundPosition: bgPos+"px "+bgPos+"px"
});
});
bgPos = bgPos+10;
setTimeout(animateKS, getRandom(200, 500));
}

$(document).ready(function() {
animateKs();
});

关于javascript - 如何在不使用mousemove动画万花筒的情况下随机化JS中的backgroundPosition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20530555/

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