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 相关文章推荐
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
Jun 24 Javascript
JQuery+CSS实现图片上放置按钮的方法
May 29 Javascript
JS跨域解决方案之使用CORS实现跨域
Apr 14 Javascript
js注入 黑客之路必备!
Sep 14 Javascript
jquery操作select取值赋值与设置选中实例
Feb 28 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
js实现返回顶部效果
Mar 10 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
Jan 25 Javascript
VUE重点问题总结
Mar 19 Javascript
简单了解JavaScript异步
May 23 Javascript
JS实现轮播图效果
Jan 11 Javascript
vue模块移动组件的实现示例
May 20 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
2011/11/23 PHP
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
JS常用算法实现代码
2016/11/14 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
Python3 shelve对象持久存储原理详解
2020/03/23 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
外贸主管求职简历的自我评价
2013/10/23 职场文书
毕业生就业推荐信范文
2013/12/01 职场文书
水果超市创业计划书
2014/01/27 职场文书
大学毕业感言50字
2014/02/07 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
房产公证书
2015/01/23 职场文书
银行求职自荐信范文
2015/03/04 职场文书
学校教学管理制度
2015/08/06 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL