完整攻略如下:
Ajax加载菊花loding效果
在Ajax通信过程中,由于请求可能需要一定的时间才能完成,因此通常需要在UI上给用户一个等待的提示,以避免出现用户误以为页面卡死的情况。本文将介绍如何通过加载菊花loading效果来解决这一问题。
CSS方式实现loading效果
我们首先通过CSS来实现loading效果:
.loading {
border: 8px solid #f3f3f3;
border-top: 8px solid #3498db;
border-radius: 50%;
width: 64px;
height: 64px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
以上代码定义了一个名为loading的样式,它将会显示为一个旋转的蓝色圆圈。我们在通信开始前将loading样式添加到指定的元素上,通信完成后再将它移除即可实现loading效果。以下是一个示例:
<!DOCTYPE html>
<html>
<head>
<style>
.loading {
border: 8px solid #f3f3f3;
border-top: 8px solid #3498db;
border-radius: 50%;
width: 64px;
height: 64px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<button id="btn">发送请求</button>
<div id="container"></div>
<script>
const container = document.getElementById('container')
const btn = document.getElementById('btn')
const loading = document.createElement('div')
loading.classList.add('loading')
btn.addEventListener('click', function() {
container.appendChild(loading)
fetch('https://api.github.com/users/github')
.then(response => response.json())
.then(data => {
container.removeChild(loading)
console.log(data)
})
.catch(error => {
container.removeChild(loading)
console.log(error)
})
})
</script>
</body>
</html>
以上示例中,当用户点击发送请求按钮时,我们向Github API发送一个请求,并在请求开始时通过container.appendChild(loading)
将loading元素添加到页面上,请求结束后再通过container.removeChild(loading)
将它移除。
jQuery插件实现loading效果
除了CSS外,我们还可以使用第三方插件来实现loading效果,这将更加便捷。以下是一个使用jQuery插件实现loading效果的示例:
首先,我们需要先引入jQuery和loading插件:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-loading-overlay/2.1.7/loadingoverlay.min.js"></script>
</head>
<body>
<button id="btn">发送请求</button>
<script>
const btn = document.getElementById('btn')
btn.addEventListener('click', function() {
$.LoadingOverlay("show")
$.ajax({
url: 'https://api.github.com/users/github',
success: data => {
$.LoadingOverlay("hide")
console.log(data)
},
error: error => {
$.LoadingOverlay("hide")
console.log(error)
}
})
})
</script>
</body>
</html>
以上示例中,我们使用了jQuery LoadingOverlay插件,并通过$.LoadingOverlay("show")
方法显示loading效果,通过$.LoadingOverlay("hide")
方法隐藏loading效果。这样就可以方便地实现loading效果了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ajax加载菊花loding效果 - Python技术站