• 【前端】javascript+jQuery实现旋转木马效果轮播图slider


    实现效果:

    实现原理:

    • 技术栈:

    javascript+jQuery+html+css

    • 实现步骤:

    // 0. 获取元素

    // 1. 鼠标放置到轮播图上,显示两侧的控制按钮,移开后隐藏

    // 2. 为两侧控制按钮绑定事件(调用同一个方法,只有一个参数,true为正向旋转,false为反向旋转)

    实现代码:

    <!DOCTYPE html>
    <html>
    <head>
    	<title>旋转木马效果轮播图</title>
    	<meta charset="utf-8">
    	<style type="text/css">
    		*{
    			padding: 0;
    			margin: 0;
    		}
    		body{
    			font: 12px/1.5 "微软雅黑";
    			background-color: #2f2f2f;
    		}
    		a{
    			text-decoration: none;
    			outline: none;
    			cursor: pointer;
    		}
    		.warp{
    			 1000px;
    			margin: 10px auto;
    			border: 1px solid red;
    		}
    		.slide{
    			height: 200px;
    			margin: 150px auto;
    			position: relative;
    		}
    		.slide li{
    			position: absolute;
    			left: 200px;
    			top: 0;
    		}
    		.slide li img{
    			 100%;
    			border: 0;
    			vertical-align: top;
    		}
    		ul{
    			list-style: none;
    		}
    		.arrow{
    			opacity: 0;
    		}
    		.prev, .next{
    			 76px;
    			height: 112px;
    			position: absolute;
    			top: 50%;
    			margin-top: -56px;
    			background: url('images/prev.png') no-repeat;
    			z-index: 999;
    		}
    		.next{
    			right: 0;
    			background-image: url('./images/next.png');
    		}
    	</style>
    </head>
    <body>
    <div class="wrap" id="wrap">
    	<div class="slide" id="slide">
    		<ul>
    			<!-- 五张图片 -->
    			<li><a href="#"><img src="./images/01.jpg"></a></li>
    			<li><a href="#"><img src="./images/02.jpg"></a></li>
    			<li><a href="#"><img src="./images/03.jpg"></a></li>
    			<li><a href="#"><img src="./images/04.jpg"></a></li>
    			<li><a href="#"><img src="./images/05.jpg"></a></li>
    		</ul>
    		<!-- 左右切换按钮 -->
    		<div class="arrow" id="arrow">
    			<a href="javascript:;" class="prev"></a>
    			<a href="javascript:;" class="next"></a>
    		</div>
    	</div>
    </div>
    <!-- 引入jQuery -->
    <script src="jquery1.0.0.1.js"></script>
    <script type="text/javascript">
    	window.onload = function(){
    		var arr = [
                    {   //  1
                        400,
                        top:0,
                        left:170,
                        opacity:20,
                        zIndex:2
                    },
                    {  // 2
                        600,
                        top:70,
                        left:80,
                        opacity:80,
                        zIndex:3
                    },
                    {   // 3
                        800,
                        top:50,
                        left:250,
                        opacity:100,
                        zIndex:4
                    },
                    {  // 4
                        600,
                        top:70,
                        left:600,
                        opacity:80,
                        zIndex:3
                    },
                    {   //5
                        400,
                        top:0,
                        left:720,
                        opacity:20,
                        zIndex:2
                    }
                ];
    
    		// 0. 获取元素
    		var slide = document.getElementById("slide");
    		var liArr = slide.getElementsByTagName("li");
    		var arrow = slide.children[1];
    		var arrowChildren = arrow.children;
    
    		// 设置一个开闭变量,点击以后修改这个值
    		var flag = true;
    
    		// 1. 鼠标放置到轮播图上,显示两侧的控制按钮,移开后隐藏
    		slide.onmouseenter = function(){
    			animate(arrow,{"opacity":100});
    		}
    		slide.onmouseleave = function(){
    			animate(arrow, {"opacity":0});
    		}
    
    		move();
    
    		// 3. 为两侧控制按钮绑定事件(调用同一个方法,只有一个参数,true为正向旋转,false为反向旋转)
    		arrowChildren[0].onclick = function(){
    			if(flag){
    				flag = false;
    				move(true);
    			}
    		}
    		arrowChildren[1].onclick = function(){
    			if(flag){
    				flag = false;
    				move(false);
    			}
    		}
    
    		// 书写slider移动函数
    		function move(bool){
    			// 判断,如果等于undefined,那么不执行这两个if语句
    			if(bool === true || bool === false){
    				if(bool){
    					// 将最后一个添加到第一个位置
    					arr.unshift(arr.pop());
    				}
    				else{
    					// 将第一个添加到最后一个位置
    					arr.push(arr.shift());
    				}
    			}
    			// 再次为页面的所有li赋值属性,利用缓动框架
    			for(var i=0; i<liArr.length; i++){
    				animate(liArr[i], arr[i], function(){
    					flag = true;
    				});
    			}
    		}
    	}
    </script>
    </body>
    </html>
    

      

  • 相关阅读:
    mybatis 框架 的应用之四(一对一 与 一对多)
    mybatis 框架 的应用之三(操作两张没有关联的表,存在主键和外键关系)
    mybatis 框架 的应用之二(批量添加、实现分页查询)
    hibernate 框架的简单使用
    Java c3p0 连接 MySQL
    Oracle 复制表
    web 应用中访问 Spring 具体实现
    oracle 创建表 外键约束
    oracle 通过序列实现某字段自增
    Swift数组的sort、filter、forEach、map等方法,$的使用
  • 原文地址:https://www.cnblogs.com/dragonir/p/7775203.html
Copyright © 2020-2023  润新知