最近一直在学习JavaScript,然后看到旋转轮播图的案例,就尝试着用js做了一个简单的轮播图,因为无法显示动态效果,所以就放个截图:
这个效果是这样的:一共有7张图片,它们会自动地向左滑动,然后左右箭头也可以控制轮播图的左滑和右滑,同时,如果鼠标停在图片上,那么轮播图会停止自动滑动,当鼠标移开时,将会继续向左轮播。
首先,我这里封装了两个函数(因为暂且还没有学jQuery,所以用了封装函数的方法来实现),第一个函数是$函数,调用可以获取html中的元素,代码如下:
`function $(select){
if (typeof select != 'string') {
console.log('传入的参数有误');
return null;
}
var firstChar = select.charAt(0);
switch(firstChar){
case '#':
return document.getElementById(select.substr(1));
break;
case '.':
if (document.getElementsByClassName){
return document.getElementsByClassName(select.substr(1));
} else {
var result = [];
var allElemnts = document.getElementsByTagName('*');
console.log(allElemnts);
for (var i = 0; i < allElemnts.length; i++){
var e = allElemnts[i];
var className = e.className;
var classArr = className.split(' ');
for (var j = 0; j < classArr.length; j++){
var c = classArr[j];
if (c == select.substr(1)) {
result.push(e);
break;
}
}
}
return result;
}
break;
default :
return document.getElementsByTagName(select);
}
}`
第二个函数是一个动画函数,用json实现多条样式的动态改变,从而达到一个动画效果,代码如下: `
function animate(element, json, fun) {
clearInterval(element.timer);
function getStyle(element, styleName){
if(element.currentStyle){
//ie浏览器下 直接通过currentstyle来获取
//return element.currentStyle.heigh;
return element.currentStyle[styleName];
}else{
var computedStyle = window.getComputedStyle(element,null);
return computedStyle[styleName];
}
}
var isStop = false;
element.timer = setInterval(function () {
isStop = true;
for (var key in json){
var target = json[key];
var current;
if (key == 'opacity') {
//当动画的类型为透明度时 获取的值应该是浮点类型
current = parseFloat(getStyle(element, key)) || 1;
} else {
//其他情况 用整数类型
current = parseInt(getStyle(element, key)) || 0;
}
var step = (target - current) / 10;
if (key != 'opacity') {
step = step > 0 "htmlcode">
<body>
<div class="box">
<div class="content">
<ul>
<li><a href="#"><img src="/UploadFiles/2021-04-02/1.jpg">
css样式的部分也不多做叙述。
下面就是JS是部分啦,代码也很简单,理清楚就好
window.onload = function(){
//定位,并给图片设置大小透明度
var json = [{
width: 630,
top: 23,
left: 0,
zIndex: 2,
opacity: 0
},{
width: 630,
top: 23,
left: 0,
zIndex: 3,
opacity: 0
},{
width: 630,
top: 23,
left: 0,
zIndex: 4,
opacity: 0.6
},{
width: 730,
top: 0,
left: 125,
zIndex: 5,
opacity: 1
},{
width: 630,
top: 23,
left: 350,
zIndex: 4,
opacity: 0.6
},{
width: 630,
top: 23,
left: 350,
zIndex: 3,
opacity: 0
},{
width: 630,
top: 23,
left: 350,
zIndex: 2,
opacity: 0
}];
function refreshImageLocatin(index){
//默认情况下 第i张图对应第i个位置
//index=1时 第i个图对应i-1个位置
//也就是第i个图对应i-index的位置
var liArr = $('li');
for(var i = 0; i < liArr.length; i++){
var li = liArr[i];
var locationIndex = i - index;
console.log('i='+i);
console.log('index='+index);
console.log('locationIndex='+locationIndex);
if(locationIndex < 0){
locationIndex += 7;
}
var locationData = json[locationIndex];
animate(li, locationData, null);
}
}
refreshImageLocatin(0);
var index = 0;
$('#next').onclick = function(){
index++;
if(index == 7){
index = 0;
}
refreshImageLocatin(index);
}
$('#prev').onclick = function(){
index--;
if(index < 0){
index = 6;
}
refreshImageLocatin(index);
}
var nextImage = $('#next').onclick;
var contentBox = $('.content')[0];
//自动播放
var timer = setInterval(nextImage, 3000);
//当鼠标移动到图片上,停止播放
contentBox.onmouseover = function(){
clearInterval(timer);
}
contentBox.onmouseout = function(){
timer = setInterval(nextImage ,3000)
}
}
以上就是旋转轮播图的全部内容了,给自己的学习过程做个简单的记录,也顺便巩固一下。
标签:
js,轮播图
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“JavaScript实现旋转轮播图”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2025年10月25日
2025年10月25日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]
