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 相关文章推荐
Iframe thickbox2.0使用的方法
Mar 05 Javascript
jCallout 轻松实现气泡提示功能
Sep 22 Javascript
js设置function参数默认值(适合没有传参情况)
Feb 24 Javascript
javascript实现全角与半角字符的转换
Jan 07 Javascript
Jquery注册事件实现方法
May 18 Javascript
JS中处理时间之setUTCMinutes()方法的使用
Jun 12 Javascript
微信小程序开发探究
Dec 27 Javascript
JS 中document.write()的用法和清空的原因浅析
Dec 04 Javascript
node.js将MongoDB数据同步到MySQL的步骤
Dec 10 Javascript
解决angularjs中同步执行http请求的方法
Aug 13 Javascript
layui中table表头样式修改方法
Aug 15 Javascript
小程序实现授权登陆的解决方案
Dec 02 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中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
2015/09/09 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
详解Python3定时器任务代码
2019/09/23 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
C++面试题:关于链表和指针
2013/06/05 面试题
WSDL的操作类型主要有几种
2013/07/19 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
中秋节礼品促销方案
2014/02/02 职场文书
诉前财产保全担保书
2014/05/20 职场文书
宣传口号大全
2014/06/16 职场文书
企业委托书范本
2014/09/13 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
2014年药房工作总结
2014/11/22 职场文书
团员年度个人总结
2015/02/26 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书