本文将带您了解关于JS实现简单图片轮播效果的新内容,同时我们还将为您解释js实现简单的图片轮播的相关知识,另外,我们还将为您提供关于HTML+JS实现的简单图片轮播、iOS实现图片轮播效果、JavaS
本文将带您了解关于JS实现简单图片轮播效果的新内容,同时我们还将为您解释js实现简单的图片轮播的相关知识,另外,我们还将为您提供关于HTML+JS实现的简单图片轮播、iOS实现图片轮播效果、JavaScript实现图片轮播效果的简单实例、JavaScript实现简单图片轮播效果的实用信息。
本文目录一览:JS实现简单图片轮播效果(js实现简单的图片轮播)
本文实例为大家分享了JS实现简单图片轮播效果的具体代码,供大家参考,具体内容如下
实现效果
- 左右按钮可点击左右移动显示图片进行无缝滚动
- 下面的小圆圈点击可跳到对应的图片索引
- 不进行上述操作时,图片自动轮播
html源码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Carousel chart</title> <link rel="stylesheet" href="./style.css" > <script src="./index.js"></script> <script src="./animate.js"></script> </head> <body> <divid="carousel-box"> <a href="javascript:;"> < </a> <a href="javascript:;"> > </a> <ul> <li><img src="./images/xuezhong_1.jpg" alt=""></li> <li><img src="./images/guimizhizhu_2.jpg" alt=""></li> <li><img src="./images/jianlai_3.jpg" alt=""></li> <li><img src="./images/yichang_4.jpg" alt=""></li> </ul> <ol> </ol> </div> </body> </html>
一个大的div盒子里面,两个左右悬浮于中间的按钮,四张图片,一行相对于下面的小圆圈
CSS源码
*{ padding: 0; margin: 0; } li { list-style-type: none; } #carousel-box { position: relative; width: 700px; height: 300px; background-color: pink; margin: 100px auto; overflow: hidden; } .arrow-l,.arrow-r { display: none; position:absolute; width: 24px; height: 40px; top: 50%; margin-top: -20px; background: rgba(0, 0, 0, 0.3); text-align:center; line-height: 40px; color: #fff; font-size: 18px; font-family: ''icomoon''; z-index: 3; } .arrow-r { right: 0; } #carousel-box img{ width: 700px; height: 300px; } #carousel-box ul { position:absolute; width: 1000%; } #carousel-box ul li { float: left; } .circle { position: absolute; bottom: 10px; right: 10px; } .circle li { float: left; width: 8px; height: 8px; margin: 0 5px; border: 2px solid rgba(255, 255, 255, 0.5); border-radius: 50%; cursor: pointer; z-index: 9999; } .current { background-color: pink; }
JS源码
animate.js:在水平平面实现左右移动的函数
function animate(obj, target, callback) { clearInterval(obj.timer); obj.timer = setInterval(function () { /* 判断正负,小数取大还是取小 */ var step = (target - obj.offsetLeft) / 10; step = step > 0 ? Math.ceil(step) : Math.floor(step); if (obj.offsetLeft == target) { clearInterval(obj.timer); callback && callback(); } obj.style.left = obj.offsetLeft + step + ''px''; }, 15); }
index.js
window.addEventListener(''load'', function () { var carousel = document.querySelector(''.carousel_box''); var ul = document.querySelector(''.move''); var ol = document.querySelector(''.circle''); var carcouselWidth = carousel.offsetWidth; var arrow_l = document.querySelector(''.arrow-l''); var arrow_r = document.querySelector(''.arrow-r''); carousel.addEventListener(''mouseenter'', function () { arrow_r.style.display = ''block''; arrow_l.style.display = ''block''; clearInterval(timer); timer = null; // 清除定时器变量 }) carousel.addEventListener(''mouseleave'', function () { arrow_r.style.display = ''none''; arrow_l.style.display = ''none''; timer = setInterval(function () { arrow_r.click(); }, 2000); }) var num = 0; var circle = 0; // 根据图片数量生成相对应的小圆圈 for (var i = 0; i < ul.children.length; i++) { var li = document.createElement(''li''); li.setAttribute(''index'', i); ol.appendChild(li); li.addEventListener(''click'', function () { for (var i = 0; i < ol.children.length; i++) { ol.children[i].className = ''''; } this.className = ''current''; var n = this.getAttribute(''index''); num = n; circle = n; animate(ul, -n * carcouselWidth); console.log(n); }) } ol.children[0].className = ''current''; var first = ul.children[0].cloneNode(true); ul.appendChild(first); var flag = true; /* function circleChange() { for (var i = 0; i < ol.children.length; i++) { ol.children[i].className = ''''; } ol.children[circle].className = ''current''; } */ arrow_r.addEventListener(''click'', function () { if (flag) { flag = false; if (num == ul.children.length - 1) { ul.style.left = 0; num = 0; } num++; animate(ul, -num * carcouselWidth, function () { flag = true; }); } circle++; if (circle == ol.children.length) { circle = 0; } circleChange(); }) arrow_l.addEventListener(''click'', function () { if (flag) { flag = false; if (num == 0) { num = ul.children.length - 1; ul.style.left = -num * carcouselWidth + ''px''; } num--; animate(ul, -num * carcouselWidth, function () { flag = true; }); circle--; circle = circle < 0 ? ol.children.length - 1 : circle; // 调用函数 circleChange(); } }); function circleChange() { for (var i = 0; i < ol.children.length; i++) { ol.children[i].className = ''''; } ol.children[circle].className = ''current''; } var timer = setInterval(function () { arrow_r.click(); }, 2000);
心得:在js实现功能中,如何根据图片数量生成小圆圈并能无缝滚动需要重点注意。
未解决的bug:多次快速点击小圆圈跳转后,可能会导致小圈圈与图片索引位置错乱,同样点击左右按钮也有可能出现类似问题。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
- javascript实现滚轮轮播图片
- JS实现简易图片自动轮播
- Js图片点击切换轮播实现代码
- JavaScript实现轮播图片完整代码
- 原生js实现点击轮播切换图片
- JavaScript实现图片轮播特效
- JavaScript实现六种网页图片轮播效果详解
HTML+JS实现的简单图片轮播
实现方法众多,这里我的思路为:
容器(这里我使用table)中的初始图片为某一张,JS的timer(理解为全局)的timerout()事件中改变容器中<img>的src属性值,也即图片路径,从而达到每若干秒更换一次图片。
简单实现:
一、容器及<img src>初始值
<table>
<tr>
<td id="main_info_jpeg" onclick="fun1()"> //此处onclick事件也能切换图片
<img id=''imginfo'' src="./image/test01.jpg"title="01">
</td>
</tr>
</table>
二、JS轮换函数及timer
<script type="text/javascript">
//以下脚本实现三张主图的切换
function fun1(){
var now_jpeg = document.getElementById("imginfo").getAttribute("src");
//document.writeln(now_jpeg);
switch(now_jpeg)
{
case ''./image/test01.jpg'':
document.getElementById(''imginfo'').setAttribute("src",''./image/test02.jpg'');
break;
case ''./image/test02.jpg'':
document.getElementById(''imginfo'').setAttribute("src",''./image/test03.jpg'');
break;
case ''./image/test03.jpg'':
document.getElementById(''imginfo'').setAttribute("src",''./image/test01.jpg'');
break;
default:
document.writeln("未获取src");
break;
}
}
self.setInterval(''fun1()'',3000); //作为全局变量理解,事件为:timerout(),事件处理函数为:fun1().
</script>
三、实现效果
1,鼠标点击图片,图片切换
2,不做任何操作,每3秒图片自动切换一次
iOS实现图片轮播效果
本文实例为大家分享了IOS图片轮播效果的实现过程,供大家参考,具体内容如下
平时APP中的广告位或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种ScrollView+ImageView,另一种则是通过CollectionView,今天总结的是ScrollView这种方式。
1.图片轮播效果实现
主要实现思路是:根据图片总数及宽高设置好ScrollView的大小,每切换一张图片相当于在ScrollView上进行一个图片宽度的移动行为,并加入定时器,实现自动轮播。
如图所示,设置好ScrollView及PageControl,ScrollView的contentSize根据图片数量确定,注意启用pagingEnabled这个属性,确保整页移动,同样pageControl也是根据图片数量来确定,每一页代表一张图片。
图片命名采用数字序号方式,方便使用,需要注意的是,pageControl是由0开始的,也就是0对应image1,1对应image2...依次类推
加载图片并将准备好的图片在ScrollView里设置好位置,即将这些图片一张紧挨着一张排列在ScrollView中。
通过ScrollView的代理方法,在ScrollView滚动结束的时候根据contentOffset更新页码。
定时器设置,这里设置为每隔2秒滚动更新一次,实际上就是每隔2秒更新一次页码,根据页码的变化,让ScrollView跟着移动,每次移动一张图片的距离
这里还需要注意的是,由于加入定时器有自动轮播的效果了,会与手动拖拽ScrollView冲突,即手动拖拽ScrollView过程时ScrollView可能自动移动更新图片了,显然这种效果是不符合用户习惯的,这时需要在ScrollView的代理事件中进行处理,即开始拖拽ScrollView时停止定时器,拖拽结束后再开启定时器。
那到这里是不是就结束了呢?我们看看效果图:
这里有两个问题:
(1)首先是移动到最后一张图片时无法移动了,如果是制作APP的新特性页面,这样的滚动效果已经可以了,但如果在广告位或者是滚动新闻这些场景下这种效果是不够好的,一般滚动到最后一张图片时,继续拖拽都会移动到第一张图片,实现一种滚动循环效果。
(2)定时器自动轮播图片时,确实图片循环轮播了,但是仔细看会发现,ScrollView是由最后一种图片位置生硬得拉回到第一张图片的位置,效果也不够理想。
解决办法,小编先留个悬念,在下面的一篇文章中会进行解答,不要错过。
- iOS实现图片轮播器
- 两行IOS代码实现轮播图
- IOS使用UICollectionView实现无限轮播效果
- iOS开发中使用UIScrollView实现图片轮播和点击加载
- IOS实现图片轮播无限循环效果
- iOS实现带有缩放效果的自动轮播图
- iOS实现无限循环轮播图效果
- iOS实现轮播图banner示例
- IOS图片无限轮播器的实现原理
- iOS实现3D卡片式轮播效果
JavaScript实现图片轮播效果的简单实例
这篇文章主要介绍了javascript实现简单图片轮播效果,点击下标切换到该图片上,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了js实现简单图片轮播的具体代码,最终实现效果图
代码块
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style> * { margin: 0; padding: 0 } ul { list-style: none } img { vertical-align: top } .box { width: 490px; height: 170px; margin: 100px auto; padding: 5px; border: 1px solid #ccc; } .inner { width: 490px; height: 170px; background-color: pink; overflow: hidden; position: relative; } .inner ul { width: 1000%; position: absolute; top: 0; left: 0; } .inner li { float: left; } .square { position: absolute; right: 10px; bottom: 10px; } .square span { display: inline-block; width: 16px; height: 16px; background-color: #fff; text-align: center; line-height: 16px; cursor: pointer; } .square span.current { background-color: orangered; color: #fff; } </style> </head> <body> <pid="box"> <p> <ul> <li><a href="#"><img src="images/01.jpg" / alt="JavaScript实现图片轮播效果的简单实例" ></a></li> <li><a href="#"><img src="images/02.jpg" / alt="JavaScript实现图片轮播效果的简单实例" ></a></li> <li><a href="#"><img src="images/03.jpg" / alt="JavaScript实现图片轮播效果的简单实例" ></a></li> <li><a href="#"><img src="images/04.jpg" / alt="JavaScript实现图片轮播效果的简单实例" ></a></li> <li><a href="#"><img src="images/05.jpg" / alt="JavaScript实现图片轮播效果的简单实例" ></a></li> </ul> <p> <span>1</span> <span>2</span> <span>3</span> <span>4</span> <span>5</span> </p> </p> </p> <script type="text/javascript"> //鼠标经过按钮 按钮排他 var box = document.getElementById("box"); var inner = box.children[0]; //获取box下的第一个元素,也就是inner var ul = inner.children[0]; //获取inner下的ul var squareList = inner.children[1]; //获取inner下的第二个元素 var squares = squareList.children; //获取所有的按钮 var imgWidth = inner.offsetWidth; // alert(imgWidth); //给每个按钮注册鼠标经过事件 for(var i=0; i<squares.length; i++){ squares[i].index = i; //把索引保存在自定义属性中 squares[i].onmouseover = function(){ //鼠标经过事件 //排他 干掉所有人 for(var j=0; j<squares.length; j++){ squares[j].className = ""; } //留下我自己 this.className = "current"; //以动画的方式把ul移动到指定的位置 //目标 和当前按钮索引有关,和图片宽度有关 而且是负数 var target = -this.index * imgWidth; //获取到索引 animate(ul,target); } } function animate(obj, target) { clearInterval(obj.timer); obj.timer = setInterval(function () { var step = 20; var step = obj.offsetLeft < target ? step : -step; if (Math.abs(obj.offsetLeft - target) > Math.abs(step)) { obj.style.left = obj.offsetLeft + step + "px"; } else { obj.style.left = target + "px"; clearInterval(obj.timer); } }, 15) } </script> </body> </html>
以上就是JavaScript实现图片轮播效果的简单实例的详细内容,更多请关注php中文网其它相关文章!
JavaScript实现简单图片轮播效果
本文实例为大家分享了js实现简单图片轮播的具体代码,最终实现效果图
代码块
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小编。
<script type="text/javascript">
//鼠标经过按钮 按钮排他
var Box = document.getElementById("Box");
var inner = Box.children[0]; //获取Box下的第一个元素,也就是inner
var ul = inner.children[0]; //获取inner下的ul
var squareList = inner.children[1]; //获取inner下的第二个元素
var squares = squareList.children; //获取所有的按钮
var imgWidth = inner.offsetWidth;
// alert(imgWidth);
//给每个按钮注册鼠标经过事件
for(var i=0; i<squares.length; i++){
squares[i].index = i; //把索引保存在自定义属性中
squares[i].onmouSEOver = function(){ //鼠标经过事件
//排他 干掉所有人
for(var j=0; j<squares.length; j++){
squares[j].className = "";
}
//留下我自己
this.className = "current";
//以动画的方式把ul移动到指定的位置
//目标 和当前按钮索引有关,和图片宽度有关 而且是负数
var target = -this.index * imgWidth; //获取到索引
animate(ul,target);
}
}
function animate(obj,target) {
clearInterval(obj.timer);
obj.timer = setInterval(function () {
var step = 20;
var step = obj.offsetLeft < target ? step : -step;
if (Math.abs(obj.offsetLeft - target) > Math.abs(step)) {
obj.style.left = obj.offsetLeft + step + "px";
} else {
obj.style.left = target + "px";
clearInterval(obj.timer);
}
},15)
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小编。
关于JS实现简单图片轮播效果和js实现简单的图片轮播的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于HTML+JS实现的简单图片轮播、iOS实现图片轮播效果、JavaScript实现图片轮播效果的简单实例、JavaScript实现简单图片轮播效果的相关信息,请在本站寻找。
本文标签: