js学习总结_轮播图之渐隐渐现版(实例讲解)
发布时间 - 2026-01-11 02:22:05 点击率:次具体代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin:0;
padding:0;
font-size:14px;
-webkit-user-select:none;
}
ul,li{
list-style
}
img{
display: block;
border:none;
}
.banner{
position:relative;
width:1000px;
height:300px;
margin:0 auto;
overflow:hidden;
}
.banner .bannerInner{
width:100%;
height:100%;
background:url("../img/default.gif") no-repeat center center #e1e1e1;
}
.banner .bannerInner div{
position:absolute;
width:100%;
height:100%;
top:0;
left:0;
z-index:0;
opacity:0;
filter:alpha(opacity=0);
}
.banner .bannerInner img{
display:none;
width:100%;
height:100%s;
}
.banner .bannerTip{
position:absolute;
height:18px;
overflow:hidden;
right:20px;
bottom:20px;
z-index:10;
}
.banner .bannerTip li{
float:left;
margin-left:10px;
width:18px;
height:18px;
background:lightblue;
cursor:pointer;
border-radius:50%;
}
.banner .bannerTip li.bg{
background:red;
}
.banner a{
display:none;
position:absolute;
top:50%;
z-index:20;
margin-top:-22.5px;
width:30px;
height:45px;
background:url("../img/pre.png");
opacity:0.5;
filter:alpha(opacity=50);
}
.banner a:hover{
opacity:1;
filter:alpha(opacity=100);
}
.banner a.bannerLeft{
left:20px;
background-position:0 0;
}
.banner a.bannerRight{
right:20px;
background-position:-50px 0;
}
</style>
</head>
<body>
<div class='banner' id='banner'>
<div class='bannerInner'>
<div><img src="" alt="" trueImg="img/banner1.jpg"></div>
<div><img src="" alt="" trueImg="img/banner2.jpg"></div>
<div><img src="" alt="" trueImg="img/banner3.jpg"></div>
<div><img src="" alt="" trueImg="img/banner4.jpg"></div>
</div>
<ul class='bannerTip'>
<li class='bg'></li>
<li></li>
<li></li>
<li></li>
</ul>
<a href="javascript:;" rel="external nofollow" rel="external nofollow" class='bannerLeft'></a>
<a href="javascript:;" rel="external nofollow" rel="external nofollow" class='bannerRight'></a>
</div>
<script>
var banner = document.getElementById('banner');
var bannerInner = utils.firstChild(banner),bannerTip = utils.children(banner,"ul")[0],bannerLink = utils.children(banner,'a'),bannerLeft = bannerLink[0],bannerRight = bannerLink[1];
var divList = bannerInner.getElementsByTagName('div');
var imgList = bannerInner.getElementsByTagName('img');
var oLis = bannerTip.getElementsByTagName('li');
//1、Ajax读取数据
var jsonData = null;
~function(){
var xhr = new XMLHttpRequest;
xhr.open("get","json/banner.txt?_="+Math.random(),false);
xhr.onreadystatechange = function(){
if(xhr.readyState ===4 && /^2\d{2}$/.test(xhr.status)){
jsonData = utils.formatJSON(xhr.responseText)
}
}
xhr.send(null)
}()
//2、数据绑定
~function(){
var str = "",str2 = "";
if(jsonData){
for(var i = 0,len=jsonData.length;i<len;i++){
var curData = jsonData[i];
str+='<div><img src="" alt="" trueImg="'+curData['img']+'"></div>';
i===0?str2+="<li class='bg'></li>":str2+="<li></li>"
}
}
bannerInner.innerHTMl = str;
bannerTip.innerHTML = str2;
}()
//3、图片的延迟加载
window.setTimeout(lazyImg,500)
function lazyImg(){
for(var i = 0,len = imgList.length;i<len;i++){
~function(i){
var curImg = imgList[i];
var oImg = new Image;
oImg.src = curImg.getAttribute('trueImg');
oImg.onload = function(){
curImg.src = this.src;
curImg.style.display = block;
//只对第一张处理
if(i===0){
var curDiv = curImg.parentNode;
curDiv.style.zIndex = 1;
myAnimate(curDiv,{opacity:1},200);
}
oImg = null;
}
}(i)
}
}
//4、自动轮播
var interval = 3000,autoTimer = null,step = 0;
autoTimer = window.setInterval(autoMove,interval);
function autoMove(){
//当已经把最后一张展示完成后(step等于最后一张的索引),我们应该展示第一张,我们让step = -1,这样再经过一次累加,step就变为0,来展示第一张
if(step === jsonData.length-1){
step = -1
}
step++;
setBanner();
}
//实现轮播图切换效果的代码
function setBanner(){
//1、让step索引对应的那个DIV的zIndex的值为1,其他的zIndex为0
for(var i = 0,len = divList.length;i<len;i++){
var curDiv = divList[i];
if(i===step){
utils.css(curDiv,"zIndex",1)
//2、让当前的透明度从0变为1,当动画结束,我们需要让其他的div的透明度的值直接变为0
myAnimate(curDiv,{opacity:1},200,function(){
var curDivSib = utils.siblings(this);
for(var k = 0,len = curDivSib.length;k<len;k++){
utils.css(curDivSib[k],'opacity',0)
}
})
continue
}
utils.css(curDiv,"zIndex",0)
}
//实现焦点对其
for(i = 0,len = oLis.length;i<len;i++){
var curLi = oLis[i];
i === step?utils.addClass(curLi,"bg"):utils.removeClass(curLi,"bg");
}
}
//5、实现鼠标悬停停止自动轮播和离开在开启自动轮播
banner.onmouseover = function(){
window.clearInterval(autoTimer);
bannerLeft.style.display = bannerRight.style.display = "block"
}
banner.onmouseout = function(){
autoTimer = window.setInterval(autoMove,interval);
bannerLeft.style.display = bannerRight.style.display = "none"
}
//6、实现点击焦点切换
~function(){
for(var i = 0,len = oLis.length;i<len;i++){
var curLi = oLis[i];
curLi.index = i;
curLi.onclick = function(){
step = this.index;
setBanner();
}
}
}()
//7、实现左右切换
bannerRight.onclick = autoMove;
bannerLeft.onclick = function(){
if(step === 0){
step = jsonData.length;
}
step--;
setBanner();
}
</script>
</body>
</html>
以上这篇js学习总结_轮播图之渐隐渐现版(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# js
# 渐隐渐现
# 原生JS实现图片网格式渐显、渐隐效果
# 原生js和jquery实现图片轮播淡入淡出效果
# 原生JS实现图片轮播与淡入效果的简单实例
# js淡入淡出的图片轮播效果代码分享
# 原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
# JS实现的简单轮播图运动效果示例
# 第一张
# 给大家
# 鼠标
# 其他的
# 对其
# 希望能
# 这篇
# 我们应该
# 只对
# 绑定
# 小编
# 让其
# 值为
# 大家多多
# 加载
# 完成后
# 渐隐
# 渐现
# opacity
# filter
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何快速生成专业多端适配建站电话?
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
如何快速登录WAP自助建站平台?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
iOS UIView常见属性方法小结
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
JS弹性运动实现方法分析
如何在企业微信快速生成手机电脑官网?
🚀拖拽式CMS建站能否实现高效与个性化并存?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
如何快速辨别茅台真假?关键步骤解析
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
5种Android数据存储方式汇总
详解jQuery停止动画——stop()方法的使用
怎么用AI帮你为初创公司进行市场定位分析?
SQL查询语句优化的实用方法总结
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
如何实现建站之星域名转发设置?
香港服务器租用费用高吗?如何避免常见误区?
使用C语言编写圣诞表白程序
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Laravel如何实现API版本控制_Laravel版本化API设计方案
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
三星、SK海力士获美批准:可向中国出口芯片制造设备
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
如何在阿里云高效完成企业建站全流程?
如何用虚拟主机快速搭建网站?详细步骤解析
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
七夕网站制作视频,七夕大促活动怎么报名?
如何在云主机快速搭建网站站点?
如何快速搭建高效香港服务器网站?
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
如何用PHP快速搭建高效网站?分步指南

