javascript - 我在动画按钮悬停 gif 中有错误
问题描述
这是我的第一篇文章,我需要帮助有人可以修复此代码让我们解释一下
- 我想要3个按钮
- 当我拿鼠标到按钮一个播放背景时:gif1(构建 gif 1,当我将鼠标移到按钮悬停播放 gif 2(gif 2 是相同的 gif1 构建的数字,就像反向一样))
- 当我拿指针按钮 2-3 播放 gif2 到 gif3 和 gif4 到 gif 5
就像当我的指针是 bt1 并且我按下按钮 3 时这样做: gif 1 播放 gif2 并播放 gif 5。当我起飞 gif 播放 gif6
<div class="backgroundimggif">
<img id="default" src="assets/gif/default4.png" class="back" alt="gifOne">
<div class="gifOneCop">
<img id="gif1" src="assets/gif/3.gif" class="hideG back TH" data-as="1" data-asD="1" alt="gifOne">
<img id="gif1R" src="assets/gif/4.gif" class="hideG back" data-asD="2" alt="gifOne">
</div>
<div class="gifTwoCop">
<img id="gif2" src="assets/gif/1.gif" class="hideG back TH" data-as="2" data-asD="3" alt="gifTwo">
<img id="gif2R" src="assets/gif/2.gif" class="hideG back" data-asD="4" alt="gifTwo">
</div>
<div class="gifThreeCop">
<img id="gif3" src="assets/gif/5.gif" class="hideG back TH" data-as="3" data-asD="5" alt="gifThree">
<img id="gif3R" src="assets/gif/6.gif" class="hideG back" data-asD="6" alt="gifThree">
</div>
</div>
//რომელი გიფზე ვართ ეს გვეუბნება
gifOrder = 0;
//ეს არესეტებს და აჩენს იმ გიფს რომელიც ჩვენ გვინდა
function build(order, dest){
dest.src = dest.src
document.getElementById(`gif${order}R`).classList.add('hideG')
dest.classList.remove('hideG')
}
//ეს ფუნფქია რევერს არესეტებს და მერე რთავს კიდე გამოჩენილ გიფს აქრობს
function back(order){
document.getElementById(`gif${order}R`).src = document.getElementById(`gif${order}R`).src
document.getElementById(`gif${order}`).classList.add('hideG')
setTimeout(function(){
document.getElementById(`gif${order}R`).classList.remove('hideG')
}, 0)
}
//თიშავს ღილაკებს 2.6 წამით
function disable(){
document.querySelector('.build').disabled = true
document.querySelector('.buildTwo').disabled = true
document.querySelector('.buildThr').disabled = true
setTimeout(function (){
document.querySelector('.build').disabled = false
document.querySelector('.buildTwo').disabled = false
document.querySelector('.buildThr').disabled = false
}, 2600)
}
//ეს ჰოვერს უსმენს. მარტო პირველ გიფს ჭირდება +1 იმიტომ რომ რო გავააქტიუროთ giforder უნდა უდრიდეს 1 ამიტომაც ერთს ვუმატებთ
document.querySelector('.build').addEventListener('mouseenter', ()=>{
setTimeout(function () {
if(gifOrder == 0){
build(gifOrder+1, document.getElementById('gif1'))
}else{
build(gifOrder, document.getElementById('gif1'))
}
gifOrder = 1
}, 1000)
})
//ეს უსმენს როცა hover აღარ აკეთებ
document.querySelector('.build').addEventListener('mouseleave', ()=>{
//ეს ფუნცქია 1.2 წამით დააგვიანებს
setTimeout(function(){
back(gifOrder)
}, 1800)
disable()
})
//ამის მერე ყველგან იგივე არის აქ არ ვუმატებთ giforder +1
document.querySelector('.buildTwo').addEventListener('mouseenter', ()=>{
setTimeout(function () {
if(gifOrder == 3){
console.log(gifOrder);
build(gifOrder, document.getElementById('gif2'))
gifOrder = 2
}else{
gifOrder = 2
console.log(gifOrder);
build(gifOrder, document.getElementById('gif2'))
}
}, 1000)
})
document.querySelector('.buildTwo').addEventListener('mouseleave', ()=>{
setTimeout(function(){
back(gifOrder)
}, 1800)
disable()
})
document.querySelector('.buildThr').addEventListener('mouseenter', ()=>{
setTimeout(function () {
gifOrder = 3
build(gifOrder, document.getElementById('gif3'))
}, 1000)
})
document.querySelector('.buildThr').addEventListener('mouseleave', ()=>{
setTimeout(function(){
back(gifOrder)
}, 1800)
disable()
})
解决方案
推荐阅读
- regex - 多个字符的正则表达式匹配
- amazon-s3 - aws s3 cp 将文件下载到匹配文件名的本地
- java - 可选或默认的泛型参数
- javascript - 从 Javascript 中的 HTML 表单获取数据总是产生字符串?
- kotlin - 有没有优雅的方法可以在 kotlin 和箭头中将 List 变成 NonEmptyList?
- reactjs - 反应原生点击突出显示的单词
- performance-testing - JMETER 4. 0 | JMeter 分布式负载测试 | jp@gc - 步进线程组 | 报告
- php - laravel 护照模块中个人访问令牌的过期时间
- android - 在密钥库 keystore.jks 中找不到别名为“foo”的密钥
- swift - 无法取消选择 DLRadioButton 单选按钮