js轮播图透明度切换(带上下页和底部圆点切换)


Posted in Javascript onApril 27, 2017

效果图:

js轮播图透明度切换(带上下页和底部圆点切换)

代码如下:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style type="text/css">
 *{
 margin:0;
 padding:0;
 border:none;
 }
 li{
 list-style: none;
 }
 #box{
 height:340px;
 width:790px;
 position: relative;
 margin:100px auto;

 }
 #box #list1{
 height:340px;
 width:790px;

 }
 #box #list1 li{
 font-size: 80px;
 line-height: 340px;
 text-align: center;
 height:340px;
 width:790px;
 position: absolute;
 left:0;
 top:0;
 opacity: 0;
 filter: alpha(opacity=0);
 }
 #box #list1 li img{
 height:340px;
 width:790px;
 }
 #shang,#xia{
 height:80px;
 width:50px;
 color:#212121;
 background: #ccc;
 font-size: 60px;
 font-weight: bold;
 line-height: 80px;
 text-align: center;
 position: absolute;
 top:130px;
 opacity: 0.8;
 filter: alpha(opacity=80);
 cursor: pointer;

 }
 #shang{
 left:0;
 }
 #xia{
 right:0;
 }
 #box #list2{
 height:20px;
 width:195px;
 position: absolute;
 left:297px;
 bottom:25px;
 opacity: 0.8;
 filter: alpha(opacity=80);

 }
 #box #list2 li{
 height:20px;
 width:20px;
 background: #ccc;
 border-radius: 50%;
 float: left;
 margin-right:5px;
 cursor: pointer;

 }

 #box #list2 li.active{
 background: black;
 }
 </style>

 <script type="text/javascript">
 onload = function(){
 var oBox = document.getElementById('box');
 var oLIst1 = document.getElementById('list1');
 var aLi1 = oLIst1.getElementsByTagName('li');
 var oLIst2 = document.getElementById('list2');
 var aLi2 = oLIst2.getElementsByTagName('li');
 var oShang = document.getElementById('shang');
 var oXia = document.getElementById('xia');
 aLi1[0].style.opacity = 1;
 aLi1[0].style.filter = 'alpha(opacity=100)';
 var size = aLi1.length;
 var i = 0;
 var timer = setInterval(function(){
 i ++;
 move();
 },2000);
 function move(){
 if(i >= size){
 i = 0
 }
 if(i < 0){
 i = size-1;
 }
 for(var j = 0; j < aLi1.length; j ++){
 if(j == i){
 animate(aLi1[j],{opacity:100});
 aLi2[j].className = 'active';
 }else{
 animate(aLi1[j],{opacity:0});
 aLi2[j].className = '';
 }
 }

 }
 //前一张
 oShang.onclick = function(e){
 var evt = e || event;
 evt.preventDefault();
 i --;
 move();
 }
 //后一张
 oXia.onclick = function(e){
 var evt = e || event;
 evt.preventDefault();
 i ++;
 move();
 }
 //下面的圆点
 for(var k = 0;k < aLi2.length; k ++){
 aLi2[k].index = k;
 aLi2[k].onmouseenter = function(){
 i = this.index;
 move();
 }
 }
 oBox.onmouseenter = function(){
 clearInterval(timer);
 }
 oBox.onmouseleave = function(){
 timer = setInterval(function(){
 i ++;
 move();
 },2000);
 }
 /*************************缓冲运动 可封装留着以后备用^_^*************************/

 function getStyleAttr(obj, attr){
 if (window.getComputedStyle){
 return getComputedStyle(obj, null)[attr]; 
 }
 else {
 return obj.currentStyle[attr]; 
 }
 }
 function animate(obj, json, fn){
 clearInterval(obj.timer); 
 obj.timer = setInterval(function(){
 var bStop = true; 
 for (var attr in json){
 var iTarget = json[attr]; 
 var current;
 if (attr == "opacity"){ 
 current = parseFloat(getStyleAttr(obj, attr))*100;
 current = Math.round(current);
 }
 else { 
 current = parseFloat(getStyleAttr(obj, attr));
 current = Math.round(current);
 }
 var speed = (iTarget-current)/8; (400-393)/8
 speed = speed>0 ? Math.ceil(speed) : Math.floor(speed);
 if (current != iTarget){
 bStop = false; 
 }
 if (attr == "opacity"){ 
 obj.style[attr] = (current+speed)/100;
 obj.style.filter = "alpha(opacity=" + (current+speed) + ")";
 }
 else { 
 obj.style[attr] = current+speed + "px";
 }
 }
 if (bStop){
 console.log("停止运动");
 clearInterval(obj.timer); 
 if (fn) {
 fn(); 
 }
 }
 }, 30);
 }
 }
 </script>
 </head>
 <body>
 <div id="box">
 <ul id="list1">
 <li style="background: red;">1</li>
 <li style="background: yellow;">2</li>
 <li style="background: green;">3</li>
 <li style="background: blue;">4</li>
 <li style="background: blueviolet;">5</li>
 <li style="background: brown;">6</li>
 <li style="background: orangered;">7</li>
 <li style="background: palevioletred;">8</li> 
 </ul>
 <ul id="list2">
 <li class="active"></li>
 <li></li>
 <li></li>
 <li></li>
 <li></li>
 <li></li>
 <li></li>
 <li style="margin-right:0px;"></li>
 </ul>
 <div id="shang">
 <
 </div>
 <div id="xia">
 >
 </div>
 </div>
 </body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
document.open() 与 document.write()的区别
Aug 13 Javascript
JavaScript 快捷键设置实现代码
Mar 13 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
Nov 25 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
Dec 04 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
浅谈JavaScript异步编程
Jan 20 Javascript
vue一个页面实现音乐播放器的示例
Feb 06 Javascript
JavaScript常见事件处理程序实例总结
Jan 05 Javascript
微信小程序云开发实现数据添加、查询和分页
May 17 Javascript
JavaScript命名空间模式实例详解
Jun 20 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
Jun 24 Javascript
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 30 Javascript
Angular.js中定时器循环的3种方法总结
Apr 27 #Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
Apr 27 #Javascript
微信小程序 wx:for的使用实例详解
Apr 27 #Javascript
微信小程序 动态传参实例详解
Apr 27 #Javascript
微信小程序 本地数据读取实例
Apr 27 #Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
Apr 27 #Javascript
js获取浏览器的各种属性
Apr 27 #Javascript
You might like
深入理解PHP原理之异常机制
2010/08/21 PHP
Php Image Resize图片大小调整的函数代码
2011/01/17 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
js异步加载的三种解决方案
2013/03/04 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
javascript数据类型详解
2017/02/07 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
Node 代理访问的实现
2019/09/19 Javascript
jQuery实现评论模块
2020/08/19 jQuery
OpenLayers3实现图层控件功能
2020/09/25 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
python服务器端收发请求的实现代码
2014/09/29 Python
Fiddler如何抓取手机APP数据包
2016/01/22 Python
django如何自己创建一个中间件
2019/07/24 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
主管会计岗位职责
2014/03/13 职场文书
迎国庆演讲稿
2014/09/15 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书