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 相关文章推荐
巧用局部变量提升javascript性能
Feb 24 Javascript
JavaScript实现图片自动加载的瀑布流效果
Apr 11 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 Javascript
vue页面使用阿里oss上传功能的实例(一)
Aug 09 Javascript
利用纯JS实现像素逐渐显示的方法示例
Aug 14 Javascript
Vue的MVVM实现方法
Aug 16 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
Oct 24 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
vue el-tree 默认展开第一个节点的实现代码
May 15 Javascript
小程序实现多个选项卡切换
Jun 19 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
如何在PHP中进行身份认证
2006/10/09 PHP
解析php中curl_multi的应用
2013/07/17 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
javascript编程起步(第二课)
2007/01/10 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
javascript 闭包
2011/09/15 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
在HTML中使用JavaScript的两种方法
2020/12/24 Javascript
python读取文件名称生成list的方法
2018/04/27 Python
Scrapy框架使用的基本知识
2018/10/21 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
python之信息加密题目详解
2019/06/26 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
Django-migrate报错问题解决方案
2020/04/21 Python
Python是怎样处理json模块的
2020/07/16 Python
python二维图制作的实例代码
2020/12/03 Python
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
文明美德伴我成长演讲稿
2014/05/12 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python
深入理解Pytorch微调torchvision模型
2021/11/11 Python
Python echarts实现数据可视化实例详解
2022/03/03 Python
Python之matplotlib绘制折线图
2022/04/13 Python